正如许多人已经遇到的那样,我在 MySQL 中的数据编码遇到了问题。 更具体地说,该表的排序规则似乎是 utf8_general_ci。插入的数据插入得很好,但是当选择完成时,一些字符被翻译得很糟糕:
Marie-Thérèse becomes Marie-Thérèse.
是否可以选择并将这些字符转换回原始值,还是不可能?在我的例子中,更改原始表比较困难,因此我宁愿在选择查询中解决它。
最佳答案
当使用 phpmyadmin(或类似工具)并查看这些条目时,这些条目正常吗?
更新:如果没有,插入可能已经有缺陷,并且必须调整插入脚本的连接。
如果是这样,那么从技术上讲,这不是 MySQL 的错误,而是与其连接的软件的错误。例如:UTF-8 all the way through 。您必须在打开连接时/之后设置一些参数。
顺便说一句:排序规则应该是无关紧要的。 http://dev.mysql.com/doc/refman/5.7/en/charset-general.html
要点是:排序规则告诉您如何排序/比较字符串,这对于德语中的 äöü 或法语中的 àéô 等特殊字符非常重要/...,因为它们的本地/区域排序规则表示,ä
- 用于排序目的 - 与 a
完全相同(例如),在另一种排序规则中,ä
可以明显位于 a
之后code> 甚至在 z
之后。
关于MySQL 编码奇怪的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38605300/