如何使用PHP将CP-850转换为UTF-8?
我发现并尝试了
Gist - pedrosancao/CharsetConversion.php
这似乎是一个很好的解决方案,但由于我正在使用大量文本来改变编码,这太慢了。我有一个进程运行了40分钟,改变了1.5兆的数据编码。
我尝试了dos2unix -c iso -850 data.csv
,它将CP-850转换为ASCII,但这并不能解决问题。
答案 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
,应该早点尝试一下。