yunait/forceutf8

此包已被废弃且不再维护。未推荐替代包。
关于此包最新版本(v1.1)没有可用的许可证信息。

PHP 类编码,包含流行的 Encoding::toUTF8() 函数--之前称为 forceUTF8()--用于修复混合编码的字符串。

v1.1 2013-02-18 19:13 UTC

This package is not auto-updated.

Last update: 2016-07-16 06:40:18 UTC


README

PHP 类编码,包含流行的 Encoding::toUTF8() 函数--之前称为 forceUTF8()--用于修复混合编码的字符串。

描述

如果您将 PHP 函数 utf8_encode() 应用于已经为 UTF8 编码的字符串,它将返回一个乱码的 UTF8 字符串。

此类解决了此问题,并提供了一个名为 Encoding::toUTF8() 的便捷静态函数。

您不需要知道字符串的编码。它可以是 Latin1 (iso 8859-1)、Windows-1252 或 UTF8,或者字符串可以混合这些编码。Encoding::toUTF8() 将将所有内容转换为 UTF8。

有时您必须处理编码不可靠的服务,可能是在同一字符串中混合 UTF8 和 Latin1。

更新

我包含了一个额外的函数,Encoding::fixUTF8(),它将修复看起来乱码的双重(或多次)编码的 UTF8 字符串。

用法

$utf8_string = Encoding::toUTF8($utf8_or_latin1_or_mixed_string);

$latin1_string = Encoding::toLatin1($utf8_or_latin1_or_mixed_string);

另外

$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 Football
Fédération Camerounaise de Football
Fédération Camerounaise de Football
Fédération Camerounaise de Football