PHP中的奇怪字符集行为的函数参数

时间:2011-10-17 19:33:13

标签: php function parameters character-encoding

我有以下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,否则我会在输出中出现有问题的字符。

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

这是关于你的文本编辑器。

尝试从代码中删除'Rio,coraçãodoBrasil'字符串并再次写入。

答案 1 :(得分:0)

在@Marc B和@Michael Madsen的帮助下,我下载了Notepad ++(PHP IDE)并将文件转换为UTF-8字符集而没有BOM,因此我的所有问题都得到了解决。 Dreamweaver将一些文件保存为ANSI,这就是对PHP的混淆。

非常感谢所有人!

相关问题