我有一个使用 mysql 的 Zend 项目 - 我的数据库连接排序规则是utf8_unicode_ci的,我的表排序规则是utf8_unicode_ci的。我已经成功存储了一些包含 UTF8 字符的记录,但是当我尝试从数据库中获取它们时,它们被破坏了,例如:
DVI•1500HD作为DVI的1500HD获取
我尝试在应用程序中设置resources.db.params.charset = utf8
.ini但它不能解决问题。
有什么想法吗?
尝试将以下行添加到您的配置中。
resource.db.params.driver_options.1002 = "SET NAMES utf8"
关于你的Zend Framework版本,需要这个命令来更改mysql的传输编码。给定的命令是初始化数据库适配器时执行的第一件事。
也许您从数据库中获得的内容是 UTF8,但它在您的演示文稿中出错了。在网页中呈现时是否发送正确的内容类型标头?该页面是否也另存为 UTF8 文档?
我已经尝试了上面的所有解决方案,最后在freetds.conf中修复了这个问题
(/etc/freetds/freetds.conf)
[我的服务器]
TDS 版本 = 8.0
客户端字符集 = UTF-8