【发布时间】:2014-08-17 13:14:24
【问题描述】:
我有以下代码,它在字符串中搜索非 ASCII 字符并通过 AJAX 查询返回。
$asciistring = $strDescription;
for ($i=0; $i<strlen($asciistring); $i++) {
if (ord($asciistring[$i]) > 127){
$display_string .= $asciistring[$i];
}
}
如果 $strDescription 包含 £(字符 #156),则上面的代码可以正常工作。但是,我想用逗号分隔找到的每个非 ASCII 字符。当我修改下面的代码时,它会将 £ 字符转换为正方形。
$asciistring = $strDescription;
for ($i=0; $i<strlen($asciistring); $i++) {
if (ord($asciistring[$i]) > 127){
$display_string .= $asciistring[$i] . ", ";
}
}
我做错了什么,我该如何解决?
【问题讨论】:
-
“我做错了什么?” – 您正在对使用多字节字符编码的字符串中的单个字节进行操作,这当然会出错.
-
让我更具体一点:我做错了什么以及如何解决?