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


Getting Encoding Issue Even when Header to Set UTF-8 is Used

我有一个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。

我做错了什么

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

MySQL需要

SET NAMES 'utf8';

在每个连接上。

如果您的表也在utf8中,那就更好了,尽管mysql具有所需的即时转换功能,如果它们没有的话。

因为您的数据库不是UTF8。

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

检查IDE是否在没有BOM的情况下将文件编码为utf-8。