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

时间:2016-05-27 14:47:19

标签: php encoding utf-8 character-encoding codepages

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

我发现并尝试了

Gist - pedrosancao/CharsetConversion.php

这似乎是一个很好的解决方案,但由于我正在使用大量文本来改变编码,这太慢了。我有一个进程运行了40分钟,改变了1.5兆的数据编码。

dos2unix

我尝试了dos2unix -c iso -850 data.csv,它将CP-850转换为ASCII,但这并不能解决问题。

3 个答案:

答案 0 :(得分:0)

你尝试过使用iconv吗? $ str = iconv(“CP850”,“UTF-8”,$ str);

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

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

答案 1 :(得分:0)

使用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(Latin 1),在Windows上称为CP1252。

答案 2 :(得分:-1)

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