php - 奇怪的空白字符 - utf8 PHP

标签 php regex utf-8 whitespace

我在字符串中有一个奇怪的空格,空格不是空格。我在使用正则表达式和 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/

相关文章:

javascript - 使用php获取我的网站用户的登录状态并查看具有该名称的数据库的用户数量

Java 正则表达式查看字符串是否包含 %s、%d、%n

java - 怎么可能从java中的不同字节数据中获取相同的字符串?

php - Sonar 专家构建正在下降

php - 如何使用查询在mysql表中插入html代码

php - 重命名到我的数据库后如何插入/保存新文件名?

c - 摆脱正则表达式编译器警告而不使用 "#include <regex.h>"

regex - 如何让 emacs 正则表达式识别带行号和不带行号的路径

phpmyadmin 带有外来字符的 csv 导入无法正常工作

php - 单击按钮时 MySQL 更新值 +1(增量)