Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.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
Php 使用了错误的mysql连接编码-需要转换数据_Php_Mysql_Encoding_Utf 8_Connection - Fatal编程技术网

Php 使用了错误的mysql连接编码-需要转换数据

Php 使用了错误的mysql连接编码-需要转换数据,php,mysql,encoding,utf-8,connection,Php,Mysql,Encoding,Utf 8,Connection,我有一个Mysql数据库,所有表都整理为“utf8\U unicode\U ci”。 此外,我用php写入数据库的所有数据都用utf8编码。 但是我忘了将mysql连接编码设置为utf8,所以它可能默认为ISO-8859 在很长一段时间里,这不是一个问题。尽管在phpMyAdmin等工具中显示的特殊字符是错误的,但只要我一直使用错误的连接编码,数据在加载到php应用程序时是正确的 但现在我需要从另一个应用程序使用我的数据库,该应用程序(正确地)没有使用ISO-8859作为连接编码,并且会得到断开

我有一个Mysql数据库,所有表都整理为“utf8\U unicode\U ci”。 此外,我用php写入数据库的所有数据都用utf8编码。 但是我忘了将mysql连接编码设置为utf8,所以它可能默认为ISO-8859

在很长一段时间里,这不是一个问题。尽管在phpMyAdmin等工具中显示的特殊字符是错误的,但只要我一直使用错误的连接编码,数据在加载到php应用程序时是正确的

但现在我需要从另一个应用程序使用我的数据库,该应用程序(正确地)没有使用ISO-8859作为连接编码,并且会得到断开的特殊字符

现在我想转换我的数据库,以便使用正确的连接编码

我已经试过了:

但我不帮我。我找到的最接近解决方案是“ut8_解码(utf8_解码($data))”。 但这会打断以特殊字符开头的字段

其他信息:

因此,可能发生的情况如下:

  • 我的应用程序将一些utf8数据发送到数据库

  • Mysql获取数据,但认为(由于连接编码)它不是utf8,并将其转换为适合“utf8\U unicode\U ci”排序规则

  • 当我的php应用程序从数据库读取数据时,mysql似乎撤消了以前的转换,因此我的php应用程序看起来一切都很好


  • 我从来没有这样做过,但我认为这样做是可行的:创建一些基本脚本,其中两个连接到同一个数据库。第一个连接将只读取数据,而不设置连接编码。您将一步一个表地进行操作,使用到某个数组的第一个连接读取数据,截断表,然后使用设置了正确连接编码的第二个连接写回数据。有点硬编码,但应该可以工作…我想它可以工作,但我的数据库很大,用这种方式转换需要很长时间。是的,我很震惊你可以这么说。。。那么也许其他人可以提出更合适的建议。。。祝你好运