PHP - 将 CP-850 转换为 UTF-8

PHP - Convert CP-850 to UTF-8

如何使用 PHP 将 CP-850 转换为 UTF-8?

我发现并尝试过的

Gist - pedrosancao/CharsetConversion.php

这似乎是一个很好的解决方案,但由于我要处理大量文本来更改其编码,所以这太慢了。我得到一个进程 运行 40 分钟,更改 1.5 兆数据的编码。

dos2unix

我尝试了 dos2unix -c iso -850 data.csv,它将 CP-850 转换为 ASCII,但这并没有成功。

您尝试过使用 iconv 吗? $str = iconv("CP850","UTF-8",$str);

可选择使用音译(//TRANSLIT 附加到第二个参数)。

第二个建议是使用 recode_file 或 recode_string; http://php.net/manual/en/ref.recode.php

使用iconv:

iconv -f CP80 -t UTF-8 data.csv > data-utf8.csv

如果您也需要转换换行符,您可以这样做:

iconv -f CP80 -t UTF-8 data.csv | dos2unix > data-utf8.csv

dos2unix -c iso -850 data.csv 将文件转换为 ISO-8859-1(拉丁语 1),在 Windows 上称为 CP1252。

我最终使用了 utf8_encode,应该早点尝试一下。