PHP参数为国际字符和if语句


php arguments international characters and if statements

我想我错过了一些简单的输入参数和他们有重音符号的字符。我有一个php文件,可以采取参数example.com/myphpfile.php?ar1=somestring,我循环通过arg1中的字符做的东西,当我使用带有重音标记的字符,它似乎不能正常工作。如果我有arg1=niño,我的If语句似乎不起作用,它是这样设置的:

$strArr = str_split($_GET['arg1']);
foreach ($strArr as &$char) {
    // do some stuff for each character       
}

如果我使用echo $_GET['arg1'];arg1=niño,我得到niño。我对每个角色都做错了什么吗?

使用naïve PHP字符串处理函数无法正确处理多字节字符。您需要使用编码感知函数(可能来自mb_函数族)来处理它们。阅读这篇文章获得所有细节(它很长):每个程序员绝对需要知道的关于编码和字符集的内容

看你的屏幕,如果HTML标签,字符集参数是ISO-8859-1,如果你不需要添加,也看看你的银行创建时,因为它是ISO-8859-1。