Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.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 将数据库从aws移动到google cloud sql时出现汉字编码错误_Mysql_Amazon Web Services_Unicode_Utf 8_Google Cloud Platform - Fatal编程技术网

Mysql 将数据库从aws移动到google cloud sql时出现汉字编码错误

Mysql 将数据库从aws移动到google cloud sql时出现汉字编码错误,mysql,amazon-web-services,unicode,utf-8,google-cloud-platform,Mysql,Amazon Web Services,Unicode,Utf 8,Google Cloud Platform,我们有一个处理汉字的网站,该网站位于AWS 在这里,我可以毫无问题地将中文字符保存到数据库中 现在我们转到谷歌云,我面临着在数据库中保存汉字的问题 它们显示为ä¸åœåååå…) 我遵循所有规则,如“列应为utf8 unicode ci”和“数据库连接为utf8” 它在本地主机上运行良好 知道有什么问题吗 谢谢 如果数据库中的数据(列)在这两种情况下都保存(类似)UTF8编码的数据,并且处理网页中数据的代码/平台相同(例如,不是python 2和python 3),则差异可能是当前本地设置,即G

我们有一个处理汉字的网站,该网站位于AWS

在这里,我可以毫无问题地将中文字符保存到数据库中

现在我们转到谷歌云,我面临着在数据库中保存汉字的问题

它们显示为ä¸åœåååå…)

我遵循所有规则,如“列应为utf8 unicode ci”和“数据库连接为utf8

它在本地主机上运行良好

知道有什么问题吗

谢谢

如果数据库中的数据(列)在这两种情况下都保存(类似)UTF8编码的数据,并且处理网页中数据的代码/平台相同(例如,不是python 2和python 3),则差异可能是当前本地设置,即Google服务器(环境变量)、SQL客户端(UTF8设置)或者php设置。 让我们从sql客户端开始: 试着运行php-函数

mysqli_character_set_name()
获取编码。如果不是UTF-8,则将其设置为

mysqli_set_charset('utf8')
如果这不起作用,请通过将META html标记中的字符集设置为utf-8来确保php html内容

charset=utf-8
并以

declare(encoding='utf8')
如果数据库中的数据(列)在这两种情况下都保存(类似)UTF8编码的数据,并且处理网页中数据的代码/平台相同(例如,不是python 2和python 3),那么差异可能是当前的本地设置,即Google服务器(环境变量)、SQL客户端(UTF8设置)或者php设置。 让我们从sql客户端开始: 试着运行php-函数

mysqli_character_set_name()
获取编码。如果不是UTF-8,则将其设置为

mysqli_set_charset('utf8')
如果这不起作用,请通过将META html标记中的字符集设置为utf-8来确保php html内容

charset=utf-8
并以

declare(encoding='utf8')

看起来您正在处理
latin1

一地兩檢

见Mojibake


有些汉字需要4个字节,而不仅仅是3个字节。因此,我建议您使用
utf8mb4
,而不是简单地使用
utf8
,看起来您在处理过程中的某个地方使用了
latin1

一地兩檢

见Mojibake


有些汉字需要4个字节,而不仅仅是3个字节。因此,我建议您使用
utf8mb4
,而不仅仅是
utf8

我使用的是php和数据库版本是5.6I,我在这里发现一件事,可能会有所帮助。当我使用sqlyog运行直接插入查询时,我可以插入中文字符,但是当使用phpDo时,它们没有正确插入,没有使用PHP的
mysql.*
接口;使用
PDO
mysqli.*
@gunnarsifusson-请不要使用任何转换例程。他们很可能会让事情变得更糟,在这种情况下,要解决问题会困难得多。@gunnarsifusson-谢谢你的更新。还有一件事:
mysqli\u client\u encoding()。参考:我使用的是php,数据库版本是5.6。我在这里发现了一件事,也许它会有所帮助。当我使用sqlyog运行直接插入查询时,我可以插入中文字符,但是当使用phpDo时,它们没有正确插入,没有使用PHP的
mysql.*
接口;使用
PDO
mysqli.*
@gunnarsifusson-请不要使用任何转换例程。他们很可能会让事情变得更糟,在这种情况下,要解决问题会困难得多。@gunnarsifusson-谢谢你的更新。还有一件事:
mysqli\u client\u encoding()。谢谢,你链接的答案对理解事物非常有帮助。谢谢,你链接的答案对理解事物非常有帮助。