首页 > 解决方案 > 以 UTF-8 字符集显示文本且没有错误字符

问题描述

我有一个包含一些内容的文本文件,我想在我的网页上显示它。我正在以这种方式加载内容:

$txt = file_get_contents('new.txt');

当我显示内容时,charset=UTF-8它看起来像这样:

在此处输入图像描述

当我charset=ISO-8859-1改用它时,它看起来像这样:

在此处输入图像描述

我希望文本看起来像第二个示例,但使用charset=UTF-8而不是 ISO-8859-1。如何转换文本以使其正确显示?

标签: phphtmlutf-8iso-8859-1

解决方案


您可以处理原始数据或即时转换。

如果您打算将所有新数据以 UTF-8 格式存储,那么批量转换所有旧数据会更有利。在原始数据中混合编码并不好玩。您可以参考此问题来查找批量转换命令建议。

另一方面,如果您要将输入和存储保持在 ISO-8859-1 编码中,那么您唯一能做的就是即时转换文档。

$txt = iconv('iso-8859-1', 'utf-8', file_get_contents('new.txt'));

或者如果您的源文件有混合编码iso-8859-1和其他未知编码,您可以添加//IGNORE标志以防止错误:

$txt = iconv('iso-8859-1', 'utf-8//IGNORE', file_get_contents('new.txt'));

这需要更多的计算能力来每次显示页面。因此,最好始终转换原始内容(除非您的情况不可能)。


推荐阅读