有谁知道如何从字符串中删除十六进制 A0?

5 javascript php hex

我有以下字符串:

你好。你好。

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

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);
Run Code Online (Sandbox Code Playgroud)

A0被替换为00这也是个麻烦人物。
preg_replace函数中可以看出,它应该替换为空格或20

你们有谁知道我怎样才能摆脱这个麻烦的A0角色吗?

谢谢你。

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

小智 2

我想出了一个解决方案:

首先转换编码类型,然后进行替换:

$text = mb_convert_encoding($text, "Windows-1252", "UTF-8");
$text = preg_replace("/\xA0/"," ", $text);
Run Code Online (Sandbox Code Playgroud)