即使使用标头设置UTF-8,也会出现编码问题

时间:2013-12-12 10:47:53

标签: php encoding utf-8 joomla1.5

我有一个PHP脚本:

<?php
header('Content-Type: text/plain; charset=utf-8');//i have already used the 
  //header for encoding to utf-8

//rest of the code.
?>

我已经使用头文件编码为UTF-8,但是当从MySQL数据库中获取值并进行回显时,它们不会像我的MySQL数据库那样显示正确的输出。

详细说明:

我有一个正确显示数据的打印屏幕。

但是当我在PDF中导出相同的数据时,编码问题就出现了。

所以我认为这不是数据库问题。

负责将文档导出为PDF的PHP代码也包含上面提到的标题以设置UTF-8。

示例:

“Meeùs”显示为“Mees”

注意:

我的数据库已设置为UTF-8。

我做错了什么?

2 个答案:

答案 0 :(得分:2)

因为您的数据库不是UTF8。

尝试将数据库编码设置为UTF-8,或者在从数据库中提取后将utf8_encode($data)用于代码。

检查您的IDE是否将文件编码为utf-8而没有BOM。

答案 1 :(得分:2)

此症状清楚地表明数据库和php之间存在编码问题,而不是php和浏览器之间的编码问题。

MySQL需要一个

SET NAMES 'utf8';

每个连接。

最好还是你的表是在utf8中,尽管mysql具有所需的动态转换功能,如果它们不是。