您好,我的应用程序中有字符编码问题,想寻求帮助,因为即使我得到了一些指导,我也无法解决问题,所以这里是:我的 Ä 和 Ö 字符在浏览器中显示为: � </p>
我还将发布迄今为止我为解决问题所做的所有工作:
1) 数据库:我尝试更改表的排序规则,以下是 SHOW TABLE STATUS 为我的一张表提供的一些信息:
Name = test_groups
Engine = InnoDB
Version = 10
Row_format = Compact Collation
= utf8_swedish_ci
数据库字符变量给出:
| character_set_client = utf8
| character_set_connection = utf8
| character_set_database = latin1(我想知道这是原因吗?)
| character_set_filesystem = 二进制
| character_set_results = utf8
| character_set_server = utf8
| character_set_system = utf8
2)在 apache httpd.conf 我有:
AddDefaultCharset UTF-8
3)在我的 Zend 应用程序 application.ini 中:
resources.view.encoding = "UTF-8"
4) 在我的 Firefox 14.0.1 浏览器中
编辑->首选项->内容->高级->默认字符编码 = Unicode (UTF-8)
5)在我的 php 代码元标记中:
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
现在这里还有一些其他有趣的事情:当我查看我的页面并从 firefox 更改时
查看->字符编码->西方 (ISO-8859-1)
,来自 MySQL 数据库的�字符变成了 öä 字符,但是来自我的 php 代码的 öä 字符变成了 ät 字符。
当我检查来自我的 MySQL 数据库的数据的编码时,另一件事是
mb_detect_encoding($DATA_FROM_MYSQL_DATABASE)
它输出UTF-8!最后,如果我在代码中这样做:
utf8_encode($DATA_FROM_MYSQL_DATABASE)
并输出问题消失的结果,即 -characters -> öä-characters。那么这里发生了什么 x)感谢所有帮助