我在字符串中有一个奇怪的空格,空格不是空格。我在使用正则表达式和 str_replace 转换它们时遇到问题,即
echo str_replace(' ','_',$string);
有什么解决办法吗? utf8_encode 也不起作用,正则表达式也不起作用,当您将此文本复制到 Notepad++ 时,它显示为
Ê
而不是空白。
我想要实现的是运行这个正则表达式
preg_replace('/[^a-z0-9 ]/i','',$string)
但由于那些“空格”不是空格,它们也被删除了。
最佳答案
我想我从 PHP 站点得到了它:
你可能想知道为什么
trim(html_entity_decode(' '));
不会将字符串缩减为空字符串,这是因为 ' ' 实体不是 ASCII 代码 32(被 trim() 剥离),而是默认 ISO 8859-1 字符集中的 ASCII 代码 160 (0xa0)。
关于php - 奇怪的空白字符 - utf8 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7262687/