Why won't my mysql database accept an accent mark?
我刚刚发现了一个问题,城市名称中包含重音符号,例如洛杉矶?艾达,Pe?Asco等不会保存到我的数据库。通过查看另一个so问题的答案,对于带有php的mysql,最好的排序规则是什么?我尝试将数据库和varchar的排序类型从
如果我去掉客户端的重音符号,我已经验证了保存是否有效,但理想情况下,我希望将其保留在其中,因为这是城市的真实名称(根据谷歌地图API)。
您使用什么排序规则类型来支持??
附加信息:使用mysql、phpmyadmin和cakephp以及Android应用程序作为客户端
谢谢你到目前为止的建议。我想这现在变成了一个棘手的问题…我注意到默认情况下没有启用utf8,所以我在app/config/database.php文件中启用了它。我把文件放回到服务器上,但还是没有成功地再试了一次。我是否需要重新部署应用程序以启动这些db config更改,或者是否需要检查应用程序的其他区域?这里是第一次使用cakephp。
排序规则只是字符排序的顺序,这是执行比较的必要步骤。它与数据的存储方式无关(除非给定的排序规则特定于某些编码)。
字符编码是将字符映射到其二进制表示形式以供存储,这决定了支持的字符集。
但是,仅仅因为数据库/表/列使用特定的字符编码,并不是故事的结尾。您还必须考虑在应用程序内部及其与其他组件(如mysql)的接口上使用的编码。
虽然它是针对PHP的,但是UTF-8的所有内容都覆盖了你需要考虑的所有事情。