我的计算机上有一些UTF-16格式的文件,尽管这似乎是因为文件的错误或损坏,而不是故意的-它们应该是简单的英语。我上传了其中一个(here)。如果我把火狐(Viwe>Character编码)中的编码放在UTF-8上,我就会得到大量的胡言乱语(参见screenshot)。如果我将编码改为UTF-16,那么它看起来会更好(参见screenshot2),尽管仍然有一堆CJK字符存在。
我想浏览并清理所有这些文件,并可能将它们保存为utf-8格式(我将把内容插入到使用utf8_general_ci排序规则的mysql表中)。有没有人知道我如何用PHP自动完成这项工作?如果您尝试以UTF-8格式查看该文件,我希望删除该文件中显示的所有时髦字符,如果您以UTF-16格式查看,则希望删除该文件中显示的所有CJK字符。
发布于 2010-09-11 16:25:47
这应该能起到作用:
$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;https://stackoverflow.com/questions/3690299
复制相似问题