mb_convert_case删除Unicode字符?

时间:2013-04-10 00:01:47

标签: php unicode character-encoding

我的代码:

echo mb_convert_case('Björk Guðmundsdóttir', MB_CASE_UPPER, 'UTF-8');
echo mb_convert_case('Björk Guðmundsdóttir', MB_CASE_LOWER, 'UTF-8');

和输出:

BJRK GUMUNDSDTTIR
bjrk gumundsdttir

删除了一些字符。谁知道为什么?

更新1:

我注意到我的PHP文件被保存为UTF-8。所以,我把它保存为UTF-8并再次运行代码。我的新结果:

BJÖRK GUÃMUNDSDÓTTIR
björk guðmundsdóttir

更新2:

我猜问题只是它在浏览器中显示出奇怪。通过添加header('Content-Type: text/html; charset=utf-8');

解决

1 个答案:

答案 0 :(得分:1)

首先确保您的编辑器设置为没有BOM的UTF-8,然后您必须确保传递给该函数的文本实际上是UTF-8,因为这是您指定的第三个参数。然后它应该工作

编辑:您可能还想检查您的浏览器是否正确解释字符,并确保页面使用<meta>标记或PHP header()