【发布时间】:2011-11-23 18:19:34
【问题描述】:
我有一个 osCommerce 2.2 MST,其中有一些自定义添加。 osCommerce 本身在 ISO-8859-1 中。该添加在 MySQL 数据库中有一个表,该表现在位于 utf8_general_ci 中(其他都在 latin1_swedish_ci 中)。我调用的 php 文件输出
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
正如我之前提到的,来自数据库的数据是 UTF-8 格式的。但是像 ö,ä,ü 这样的字母是正确显示的。怎么会这样?应该没有utf8_decode。但是字母 č 显示为 ?。我直接把它作为结果数组。如果我使用 phpmyadmin 进行查询,则显示正确。
我设法正确显示了所有字母(仅在脚本的一部分中)。这是我做的
mysql_query("SET NAMES 'utf8'");
在我还添加的 php-script 中
header('content-type: text/html; charset=utf-8');
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
但随后出现了其他问题。
我想知道为什么 UTF-8 中的数据在不应该显示时“正确”显示。以及如何正确显示字母 č?
我觉得这个系统相当复杂。我在哪里以及如何查看这里有什么问题?
【问题讨论】:
-
PHP 字符集常见问题解答是一个好的开始:kore-nordmann.de/blog/php_charset_encoding_FAQ.html
-
@hakre:很好的链接!谢谢!我希望在我花几个小时寻找解决方案之前就拥有了这个……
-
记住“N'DUUH!”:永远不要使用 UTF-8。
标签: php mysql encoding utf-8 iso-8859-1