嗨,我在将特殊字符转换为大写时遇到问题。
使用常规的strtoupper我会得到像DANIëL这样的东西,当应用mb_strtoupper时,我得到了DANI?L。 这是代码: mb_strtoupper(rtrim($ pieces [1],“,”),'UTF-8')
请注意,我已经在输入上运行: iconv('UTF-8','ISO-8859-1 // TRANSLIT',$ tr-> TD [0])
这可能是原因吗?或者还有其他什么?
答案 0 :(得分:0)
当转换器期望UTF-8
时尝试对Latin1进行大写的典型问题请务必检查您的字符串来源。如果您的文本编辑器使用Latin1页码,而不是,则使用UTF-8
,此示例将有效$str = "daniël"; //or your rtrim($pieces[1],",")
$str = mb_convert_encoding($str,'UTF-8','Latin1');
echo mb_strtoupper($str, 'UTF-8');
//will echo DANIËL