php中str_replace出现乱码原因分析
发布时间:2011年11月18日 更新时间:2024年5月28日
作者:未知 文章ID:499 浏览:
作者:未知 文章ID:499 浏览:
乱码问题是汉字编码和str_replace的工作方引起的,因为一个汉字是占两个字节的,全角空格也相当于汉字一样占两个字节,一个区码,一个位码。不过位码和区码有重叠的部分。如以下代码:
<?php
/*
\xa1\xa1 => " " (中文全角空格)
\xcd\xa1 => "汀"
\xa1\xa3 => "。" (中文全角句号)
\xcd\xa3 => "停"
*/
$str = "汀。";
echo str_replace(" ", "", $str);
?>;
以上代码的输出结果是 "停" 字。因为str_replace是一个字节一个字节的对比,所以会出错。