怪异的空白字符 - utf8 PHP

时间:2011-08-31 19:59:33

标签: php regex utf-8 whitespace

我在字符串中有一个奇怪的空格,白色空格不是空格。用regex和str_replace转换它们有问题。

echo str_replace(' ','_',$string);

任何想法如何修复它? utf8_encode也不起作用,regex \ s,当你将这个文本复制到Notepad ++时它显示为

Ê    

而不是空格。

我想要实现的是运行此正则表达式

preg_replace('/[^a-z0-9 ]/i','',$string) 

但由于这些'空格'不是空格,所以它们也被删除了。

1 个答案:

答案 0 :(得分:3)

我想我从PHP网站获得了它:

你可能想知道为什么

trim(html_entity_decode(' '));    

不会将字符串缩减为空字符串,这是因为''实体不是ASCII代码32(由trim()剥离),而是默认ISO 8859-1字符集中的ASCII代码160(0xa0)。