2013-04-10 108 views
0

我的代码:mb_convert_case删除Unicode字符?

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');

+0

看起来像一个编码问题,你是否证实删除的文本是UTF-8家族的成员? – 2013-04-10 00:03:27

回答

1

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

编辑:您可能还需要检查你的浏览器正确解释字符,并确保在页面设置内容类型,使用一个<meta>标签或PHP的header()

+0

这些字符是UTF-8,对吧?我使用Zend Studio,并认为我已将它设置为UTF-8。还是行不通。 – snoopy76 2013-04-10 01:14:39