PHP将unicode空间转换为ascii空格
所以我遇到了一个问题,我相信发生了什么是我收到的数据使用了一些unicode空间和一些ascii空格,因此某些显示相同的字符串并不等同,例如“防水”!=“防水”。 这些字符串在我的数据库中的显示方式不同,但是,当您有多字节字符时,通常会看到奇怪的字符:“防水”和“防水”。
我想要一种使所有空格成为ASCII空格的方法,或者如果更简单,所有空格都是多字节空格。
我试过使用preg_replace,但随后字符串不再像有效的多字节字符串那样读取。 (字符串中的多字节字符将显示为垃圾)。
preg_replace('/[pZpC]/',' ',$field);
我也试过使用mb_ereg_replace,但它没有效果。
mb_ereg_replace('/[pZpC]/',' ',$field)
你可以找到并用标准的ASCII空格替换它们,如果你想通过:
$string = str_replace("xc2xa0", "x20", $string);
它看起来像preg_replace('/[pZpC]/u',' ',$field);
作品(在正则表达式结尾忘了你)
我认为你正在寻找utf8_decode($field)
。