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)

链接地址: http://www.djcxy.com/p/59333.html

上一篇: PHP convert unicode spaces to ascii spaces

下一篇: replace be safely used on a UTF