您的当前位置:首页>全部文章>文章详情

PHP替換UTF-8的空格(0xC2 0xA0)

发表于:2024-02-18 14:32:40浏览:411次 TAG: #格式转换 收藏

在于UTF-8这种编码里面,存在一个特殊的字符,其编码是“0xC2 0xA0”,转换成字符的时候,表现为一个空格,和普通的半角空格“ ”(ASCII码:0x20)一样,唯一的不同是它的宽度不会被压缩,因此常常用于网页排版(如首行缩进)。

而GB2312、Unicode之类的编码并没有这个字符,因此UTF-8转码后,这个字符就会被替换成为问号。

使用UTF-8编码进行HTMLDecode的,对于语句开头的空格( ),就会被自动转换成为这个特殊字符(0xC2 0xA0),可能是判断为放在语句开头的空格就是用来排版的。

在转换为其他编码之前,这个特殊的空格受到的待遇与普通的半角空格是一致的,甚至也会被  trim()  去掉,但是如果夹杂在普通空格之间,有时候trim就去不掉它了。

言归正传,那怎么把这个空格字符去掉呢?

我们只需要使用PHP自带函数  chr() ,chr 是将ASCII码转换为字符的函数,如下:

$str=str_replace(chr(0xC2).chr(0xA0)," ",$str);

介个样纸,就万事大吉了。

 

 

 

Hi 小闻

可以咨询展会的任何问题哦 关闭