我在gettext中使用$encoding = 'utf-8';
,在我的html代码中我设置了<meta charset="utf-8">
。我也在我的.po文件中设置了utf-8,但是当我写æøå时我仍然得到了!!什么可能是错的?
答案 0 :(得分:4)
让我们看看你提到的值是如何在字节级别的。
我从您的问题中复制了æøå
,并从您的标题中复制了�
。 �
的原因是我必须使用Windows控制台应用程序来获取问题的标题,其代码页是Windows 1252(从浏览器复制给了我Unicode Character 'REPLACEMENT CHARACTER' (U+FFFD)
)。
在以UTF-8编码的脚本中,这给出了:
<?php
$s = 'æøå';
$s2 = '�';
echo "s iso-8859-1 ", @reset(unpack("H*", mb_convert_encoding($s, "ISO-8859-1", "UTF-8"))), "\n";
echo "s2 win-1252 ", @reset(unpack("H*", mb_convert_encoding($s, "WINDOWS-1252", "UTF-8"))), "\n";
s iso-8859-1 e6f8e5 s2 win-1252 e6f8e5
所以字节表示匹配。这里的问题是当你写æøå
时:
答案 1 :(得分:3)
您需要设置此
bind_textdomain_codeset($ domain,“UTF-8”);
否则你会得到 字符