我刚刚发现一个问题,其中包含重音符号的城市名称,例如LaCañada,Peñasco等不会保存到我的数据库中。通过查看另一个SO问题What is the best collation to use for MySQL with PHP?的答案,我尝试将我的数据库和varchar的整理类型从latin1_swedish_ci
更改为仍然拒绝该字符的utf8_general_ci
。我也尝试了utf8_unicode_ci
类似的结果。
我已经确认,如果我在客户端删除重音标记,保存就有效,但理想情况下我想将其保留在那里,因为这是城市的真实姓名(根据谷歌地图apis)无论如何)。
您使用哪种排序规则类型来支持ñ?
其他信息:使用MySQL,phpMyAdmin和CakePHP以及Android应用程序作为客户端
感谢您提出的建议。我想这现在变成了一个CakePHP问题......我注意到默认utf8 is not enabled,所以我在app / config / database.php文件中启用了它。我将文件FTP回服务器并再次尝试,但没有任何运气。我是否需要重新部署应用程序以启动那些数据库配置更改,或者我应该检查应用程序的另一个区域? CakePHP用户第一次来到这里。
答案 0 :(得分:3)
整理只是字符排序的顺序,这是执行比较的必要步骤。它与数据的存储方式无关(除非给定的排序规则特定于某些编码)。
字符编码是字符到其存储的二进制表示的映射,它决定了支持的字符集。
但是,仅仅因为数据库/表/列使用特定的字符编码并不是故事的结尾。您还必须考虑应用程序中使用的编码以及与其他组件(例如MySQL)的接口。
虽然它针对的是PHP,UTF-8 all the way through几乎涵盖了您需要考虑的所有事项。