我想在mysql db中保存汉字,charset设置为UTF8
通过连接db,字段的charset也是utf8
,排序规则- utf8_general_ci
,
但它显示的不是这个词。我使用sqlyog。
有一件事,如果我提出请求并在浏览器中显示正确的中文单词,则在浏览器中回显该单词。
所以,我想知道为什么它在浏览器中显示正确的单词,而在 db 中它就像正方形,反之亦然。恐怕将来通过导出或导入可能会丢失一些数据。
谢谢
我想在mysql db中保存汉字,charset设置为UTF8
通过连接db,字段的charset也是utf8
,排序规则- utf8_general_ci
,
但它显示的不是这个词。我使用sqlyog。
有一件事,如果我提出请求并在浏览器中显示正确的中文单词,则在浏览器中回显该单词。
所以,我想知道为什么它在浏览器中显示正确的单词,而在 db 中它就像正方形,反之亦然。恐怕将来通过导出或导入可能会丢失一些数据。
谢谢
您的数据可能正确存储在数据库中,但被 sqlyog错误读取。
我没有使用过 sqlyog,但这个问题可能是因为 sqlyog 连接到 MySQL 的方式 - 在 sqlyog 连接到 DB 时查找与字符集相关的参数,并确保它们也是 utf8
当我不得不将拉丁字符插入数据库时,我遇到了类似的问题,我使用了 mb_convert_encoding($str, 'utf8', 'HTML-ENTITIES') 并且它正确存储在数据库中,我不得不在html 页面我只有 encoding=utf-8