我有以下PHP代码:
<?php
ini_set( 'default_charset', 'UTF-8' );
mb_internal_encoding('UTF-8');
function labelValidate($label)
{
echo mb_detect_encoding($label.'x', 'UTF-8, ISO-8859-1');
echo '<br />';
echo mb_detect_encoding('Rio, coração do Brasil', 'UTF-8, ISO-8859-1');
}
labelValidate('Rio, coração do Brasil');
?>
我得到了这个输出:
ISO-8859-1 UTF-8
有人知道为什么参数$ label有ISO字符集,但我在函数内部创建的直接回声有UTF-8编码吗?
这给我带来了麻烦,因为我必须在$ label var中添加一个utf8_encode,否则我会在输出中出现有问题的字符。
感谢您的帮助!
答案 0 :(得分:1)
这是关于你的文本编辑器。
尝试从代码中删除'Rio,coraçãodoBrasil'字符串并再次写入。
答案 1 :(得分:0)
在@Marc B和@Michael Madsen的帮助下,我下载了Notepad ++(PHP IDE)并将文件转换为UTF-8字符集而没有BOM,因此我的所有问题都得到了解决。 Dreamweaver将一些文件保存为ANSI,这就是对PHP的混淆。
非常感谢所有人!