0

晚上,

我有要清理的 HTML 文件。这些有一些无效的 Unicode 字符出现在我的文本编辑器中,例如:

/B7

我想用它们应该是的字符或我选择的替换字符替换它们。例如,/B7 字符是中点,但我想用句号替换它。

这里的功能:PHP - 从 utf8 字符串中去除浏览器中不可显示的所有字符的快速方法

删除无效字符,但我对编码没有足够的把握,无法对它做更多的事情。

4

1 回答 1

3

您的文件很可能在 Windows-1252 中编码(其中0xB7解码为·),并且 gEdit 将其解码为 UTF-8 并0xB7直接显示无效的 UTF-8 字节(在特定序列之外时在 UTF-8 中无效)作为它们的值 I猜测。您可以通过多种方式修复文件,但在 PHP 中您可以:

<?php
$file_contents = file_get_contents("brokenfile.txt");
$file_contents = mb_convert_encoding($file_contents, "UTF-8", "Windows-1252");
file_put_contents("brokenfile.txt", $file_contents);

上面的脚本会将文件解码为 Windows-1252 并将其编码为 UTF-8。

文本编辑器允许您通常在“另存为”对话框或某些配置中指定保存文件的编码。在使用它之前,您应该始终配置您的编辑器编码。

如果您·在此转换后在您的网站上看到,这意味着您告诉浏览器您的内容是 Windows-1252 或 ISO-8859-1 等。您必须告诉浏览器您的内容是 UTF-8:

header("Content-Type: text/html; charset=utf-8");
于 2013-03-21T14:59:31.680 回答