【问题标题】:PHP - Convert CP-850 to UTF-8PHP - 将 CP-850 转换为 UTF-8
【发布时间】:2016-05-27 14:47:18
【问题描述】:

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

我的发现和尝试

Gist - pedrosancao/CharsetConversion.php

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

dos2unix

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

【问题讨论】:

  • 可能是iconv?
  • 这个库使用mb_convert。看起来没问题,也许你可以尝试使用 C exec 和 PHP 进行外部调用。

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


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2018-04-20
        • 2018-11-12
        • 2012-08-04
        • 2011-11-25
        • 1970-01-01
        • 1970-01-01
        • 2012-08-16
        • 2015-09-21
        相关资源
        最近更新 更多