目前我的网站支持英语,葡萄牙语,瑞典语和波兰语。但由于某些原因,一些优秀的角色不正确,如Zal�z konto
它应该看起来像Zalóz konto
我有这个
// Send the Content-type header in case the web server is setup to send something else
header('Content-type: text/html; charset=utf-8');
和<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
答案 0 :(得分:4)
您还需要将字符串转换为UTF8。
utf8_encode()不会检查你的字符串是什么编码,有时它会给你一个混乱的字符串,所以我做了一个名为Encoding :: toUTF8()的函数来做这件事。
您不需要知道字符串的编码是什么。它可以是Latin1(iso 8859-1),Windows-1252或UTF8,或者字符串可以混合使用它们。 Encoding :: toUTF8()会将所有内容转换为UTF8。
我这样做是因为一项服务给了我一个混乱的数据源,将这些编码混合在同一个字符串中。
用法:
$utf8_string = Encoding::toUTF8($mixed_string);
$latin1_string = Encoding::toLatin1($mixed_string);
我已经包含了另一个函数Encoding :: fixUTF8(),它将修复每个UTF8字符串,这些字符串看起来像是多次编码成UTF8的乱码产品。
用法:
$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
下载:
答案 1 :(得分:2)
如果你使用php从mysql数据库中检索数据,你应该在做任何事情之前使用这个查询..
mysql_query("SET NAMES utf8");
因此,从db接收的数据将被正确编码,如果它们正确存储在其中......
答案 2 :(得分:1)
或者,您可以使用iso-8859-1标准:
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
答案 3 :(得分:0)
我的头开始于:
< head>
< meta http-equiv="Content-Language" content="pl" >
< meta charset="UTF-8" >
...
< /head>
...
一切正常。