Ogu*_*gic 2 mysql unicode utf-8
我现在想使用utf 8,但我的所有数据都是latin1,转换数据的有效方法是什么.我也知道如何将数据库的结构(charset)更改为utf8,我想要做的是更改现有数据的字符集.
这是我的旧设置,
这是我的新设置,我希望这是创建多语言网站的最佳方式
如果将utf8_encode()应用于已经是UTF8的字符串,它将返回乱码的UTF8输出.
我做了一个解决所有这些问题的功能.它叫做forceUTF8().
您不需要知道字符串的编码是什么.它可以是Latin1(iso 8859-1)或UTF8,或者字符串可以混合使用两者.forceUTF8()会将所有内容转换为UTF8.
我这样做是因为一项服务给了我一个混乱的数据,将UTF8和Latin1混合在同一个字符串中.
用法:
$utf8_string = forceUTF8($utf8_or_latin1_or_mixed_string);
$latin1_string = forceLatin1($utf8_or_latin1_or_mixed_string);
Run Code Online (Sandbox Code Playgroud)
我已经包含了另一个函数fixUFT8(),它将修复每个看起来乱码的UTF8字符串.
用法:
$utf8_string = fixUTF8($garbled_utf8_string);
Run Code Online (Sandbox Code Playgroud)
例子:
echo fixUTF8("Fédération Camerounaise de Football");
echo fixUTF8("Fédération Camerounaise de Football");
echo fixUTF8("FÃÂédÃÂération Camerounaise de Football");
echo fixUTF8("Fédération Camerounaise de Football");
Run Code Online (Sandbox Code Playgroud)
将输出:
Fédération Camerounaise de Football
Fédération Camerounaise de Football
Fédération Camerounaise de Football
Fédération Camerounaise de Football
Run Code Online (Sandbox Code Playgroud)
更新:我将theese转换为静态类,现在他们住在Github:
https://github.com/neitanod/forceutf8