3

我刚刚发现了一个问题,其中包含重音符号的城市名称(例如 La Cañada、Peñasco 等)不会保存到我的数据库中。查看另一个 SO 问题的答案,对于 MySQL 和 PHP 使用的最佳排序规则是什么?,我尝试将我的数据库和 varchar 的排序规则类型都更改latin1_swedish_ciutf8_general_ci仍然拒绝该字符。我也尝试utf8_unicode_ci过类似的结果。

如果我去掉客户端的重音标记,我已经验证了保存是否有效,但理想情况下我想将它保留在那里,因为这是城市的真实名称(无论如何根据谷歌地图 apis)。

您使用哪些排序规则类型来支持ñ?

附加信息:将 MySQL、phpMyAdmin 和 CakePHP 与 Android 应用程序一起用作客户端


感谢您迄今为止的建议。我想这现在变成了一个 CakePHP 问题......我注意到默认情况下utf8 是不启用的,所以我在我的 app/config/database.php 文件中启用了它。我将文件通过 FTP 传回服务器并再次尝试,但仍然没有任何运气。我是否需要重新部署应用程序来启动这些数据库配置更改,或者我的应用程序的其他区域我应该检查吗?第一次使用 CakePHP 用户。

4

1 回答 1

3

排序只是字符排序的顺序,这是执行比较的必要步骤。它与数据的存储方式无关(除非给定的排序规则特定于某些编码)。

字符编码是将字符映射到它们的二进制表示以进行存储,它决定了支持的字符集

但是,仅仅因为数据库/表/列使用特定的字符编码并不是故事的结局。您还必须考虑在您的应用程序中以及在其与其他组件(例如 MySQL)的接口上使用的编码。

虽然它是针对 PHP 的,但UTF-8几乎涵盖了您需要考虑的所有内容。

于 2012-11-10T10:43:35.470 回答