加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 有谁知道如何从字符串中删除hex A0?

发布时间:2020-12-13 17:21:51 所属栏目:PHP教程 来源:网络整理
导读:我有以下字符串: Hello. ? Hello. 如果你在十六进制编辑器中查看字符串,它看起来像这样: 48 65 6C 6C 6F 2E 20 A0 20 20 48 65 6C 6C 6F 2E 注意中间的A0. (这是不间断的空格字符). A0打破了我正在使用的一些JavaScript,因此我希望在PHP脚本预处理字符串时
我有以下字符串:

Hello. ? Hello.

如果你在十六进制编辑器中查看字符串,它看起来像这样:

48 65 6C 6C 6F 2E 20 A0 20 20 48 65 6C 6C 6F 2E

注意中间的A0. (这是不间断的空格字符).

A0打破了我正在使用的一些JavaScript,因此我希望在PHP脚本预处理字符串时将其删除.

如果我使用以下代码:

$text = preg_replace("/xA0/"," ",$text);

A0被替换为00,这也是一个麻烦的角色.
正如您在preg_replace函数中看到的那样,它应该被空格替换,或者20.

你们有谁知道如何摆脱这个麻烦的A0角色?

谢谢.

编辑:我使用的是Windows-1252,无法切换到UTF-8.如果您使用的是UTF-8,这不会有问题……

解决方法

简单

$string = str_replace(chr(160),$string);

简单测试

$string = "48656C6C6F2E20A0202048656C6C6F2E" ;
                        ^----------------------- 0A

//Rebuild String
$string = pack("H*",$string);

//Replace 0A Charater 
$string = str_replace(chr(160),$string);

//Send Output 
var_dump($string,bin2hex($string));

产量

string 'Hello.    Hello.' (length=16)
string '48656c6c6f2e2020202048656c6c6f2e' (length=32) 
                     ^---------------------- 0A Replaced with 02

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读