【发布时间】:2012-10-30 13:09:34
【问题描述】:
我刚刚发现了一个问题,城市名称包含重音符号,例如La Cañ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,结果相似。
如果我去掉客户端的重音符号,我已经验证了保存是否有效,但理想情况下我想将它保留在那里,因为这是城市的真实名称(根据 google maps apis反正)。
您使用哪些排序规则类型来支持 ñ?
附加信息:将 MySQL、phpMyAdmin 和 CakePHP 与 Android 应用程序一起用作客户端
感谢到目前为止的建议。我想这现在变成了一个 CakePHP 问题......我注意到默认情况下utf8 is not enabled,所以我在我的 app/config/database.php 文件中启用了它。我将文件通过 FTP 传回服务器并再次尝试,但仍然没有任何运气。我是否需要重新部署应用程序以启动那些数据库配置更改,或者我的应用程序的其他区域我应该检查吗?第一次使用 CakePHP 用户。
【问题讨论】:
-
大多数 utf8 排序规则对这个字符应该没有任何问题。你的
INSERT-statement 是什么样子的?您的 mysql 数据库连接器是否使用 utf8? -
latin1 字符集支持ñ。我不认为问题出在字符集中。
-
我记得
£符号有类似的问题,虽然我没有使用 cake,但应用程序中有 cake 的变形器。您是否使用Cake/Utility/Inflector.php进行过滤? -
我看到了 Cake/Utility/Inflector.php 文件,但老实说我不能说我是否在积极使用它。 Cake 默认使用过滤器吗?
标签: android mysql database cakephp collation