1

我的计算机上有一些 UTF-16 格式的文件,但这似乎是因为文件的错误或损坏而不是意图 - 它们应该是简单的英文。我上传了其中一个(这里)。如果我将 Firefox(Viwe>Character Encoding)中的编码保留为 UTF-8,那么我会得到大量的乱码(见截图)。如果我将编码更改为 UTF-16,那么它看起来会好很多(请参阅screenshot2),尽管仍然存在一堆 CJK 字符。

我想浏览所有这些文件并清理它们,并可能以 utf-8 格式保存它们(我会将内容插入到使用 utf8_general_ci 排序规则的 mysql 表中)。有谁知道我如何使用 PHP 以自动化方式做到这一点?如果您尝试以 UTF-8 格式查看文件,我想删除文件显示的所有时髦字符,以及如果您以 UTF-16 格式查看文件显示的所有 CJK 字符。

4

1 回答 1

3

这应该可以解决问题:

$txt = file_get_contents('watches.txt');
$txt = mb_convert_encoding($txt, 'UTF-8');
/*Nice regexp to strip non asci and non-printable chars*/
$txt = preg_replace('/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]+/S','',$txt);
$txt = preg_replace('/[^\x00-\x7F]+/S','',$txt);

echo $txt;
于 2010-09-11T08:25:47.343 回答