如果应用
utf8_enpre()到已经存在的UTF-8字符串,它将返回乱码的UTF-8输出。
我做了一个解决所有这些问题的功能。叫做
Encoding::toUTF8()。
您不需要知道字符串的编码是什么。它可以是Latin1(ISO8859-1),Windows-1252或UTF-8,或者字符串可以混合使用。
Encoding::toUTF8()会将所有内容转换为UTF-8。
我之所以这样做,是因为某项服务使我的数据馈送全乱了,在同一字符串中混合了UTF-8和Latin1。
用法:
require_once('Encoding.php');use ForceUTF8Encoding; // It's namespaced now.$utf8_string = Encoding::toUTF8($utf8_or_latin1_or_mixed_string);$latin1_string = Encoding::toLatin1($utf8_or_latin1_or_mixed_string);下载:
https://github.com/neitanod/forceutf8
我提供了另一个函数,
Encoding::fixUFT8()它将修复每个看起来乱码的UTF-8字符串。
用法:
require_once('Encoding.php');use ForceUTF8Encoding; // It's namespaced now.$utf8_string = Encoding::fixUTF8($garbled_utf8_string);例子:
echo Encoding::fixUTF8("Fédération Camerounaise de Football");echo Encoding::fixUTF8("Fédération Camerounaise de Football");echo Encoding::fixUTF8("FÃÂédÃÂération Camerounaise de Football");echo Encoding::fixUTF8("Fédération Camerounaise de Football");将输出:
Fédération Camerounaise de FootballFédération Camerounaise de FootballFédération Camerounaise de FootballFédération Camerounaise de Football
我已将函数(
forceUTF8)转换为称为的类上的一系列静态函数
Encoding。新功能是
Encoding::toUTF8()。



