Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在一个字符集中读取元素并在另一个字符集中读取结果。。。但这并不适合胆小的人,未来的程序员可能会发疯,试图理解代码为什么会这样做_Mysql_Unicode - Fatal编程技术网

Mysql 在一个字符集中读取元素并在另一个字符集中读取结果。。。但这并不适合胆小的人,未来的程序员可能会发疯,试图理解代码为什么会这样做

Mysql 在一个字符集中读取元素并在另一个字符集中读取结果。。。但这并不适合胆小的人,未来的程序员可能会发疯,试图理解代码为什么会这样做,mysql,unicode,Mysql,Unicode,如果使用Python提取数据并将其显示在网页中,您会看到字符串“0”™", 然后,这表明您正在将数据作为UTF-8正确地从数据库中取出,但随后将其放入未正确标识为UTF-8的网页中。可能只是默认为Latin1,如上所述,它实际上是Windows-1252 尽管如此,即使您修复了显示,请注意数据库中的数据不好,因为U+99实际上不是UTF-8列中的商标符号。您需要通过读取所有数据,并将U+80到U+9F范围内的任何字符替换为可能的字符来清理数据,前提是数据确实正确Windows-1252。如果您不

如果使用Python提取数据并将其显示在网页中,您会看到字符串“0”™", 然后,这表明您正在将数据作为UTF-8正确地从数据库中取出,但随后将其放入未正确标识为UTF-8的网页中。可能只是默认为Latin1,如上所述,它实际上是Windows-1252

  • 尽管如此,即使您修复了显示,请注意数据库中的数据不好,因为U+99实际上不是UTF-8列中的商标符号。您需要通过读取所有数据,并将U+80到U+9F范围内的任何字符替换为可能的字符来清理数据,前提是数据确实正确Windows-1252。如果您不确定数据最初是在哪个字符集中——那么,唉,这些数据只是垃圾

  • 关于更改表格的字符集

  • 插入数据后转换字符集和表的排序规则将转换列,但是,当然,任何已插入的数据都将丢失原始字符集无法表示的字符

  • 请注意
    ALTER TABLE foo CONVERT to CHARACTER SET…
    ALTER TABLE foo CHARACTER SET…
    之间的区别,后者仅更改表格的默认字符集,不会更改任何列,即使它们在创建时设置为默认值。(MySQL只在创建列时使用默认值,它不记得给定的列是“默认”的,也不记得它与表的默认值保持同步。)


  • 相关:我在python连接中将字符集设置为utf8——在这一点上,我很确定如果我能弄清楚命令行上发生了什么,我就能在我的代码中得到正确的结果——但我仍然不清楚在基本DB/命令行级别上发生了什么。就是这样。我不确定具体如何处理这个问题知识是否能够解决问题,但我认为这是主要问题。这确实是我在对Scott McClung回答的评论中发现的问题导致我不得不做的事情,但并没有解决mtnviewmark所描述的真正问题。
    "Bing® Blang™ Blaow"
    
    "Bing® Blang Blaow"
    
    mysql --default-character-set=utf8 
    
    "Bing® Blang™ Blaow"
    
    def character_set_name(*args, **kwargs): return 'utf-8' conn.character_set_name = new.instancemethod(character_set_name, conn, conn.__class__)