UTF-8 PHP替换不可打印字符“;“空间”;带有不可打印字符;换行“;

UTF-8 PHP替换不可打印字符“;“空间”;带有不可打印字符;换行“;,php,utf-8,preg-replace,non-printable,Php,Utf 8,Preg Replace,Non Printable,我在UTF-8中有一个字符串,带有不可打印的空格,我需要将其替换为不可打印的换行符 类似这样的str_replace(“”,,$string)但是带有不可打印字符如何:str\u replace('',PHP\u EOL,$string) 或者更好:str_replace(数组(“”,),PHP_EOL,$string)如果您在引号之间键入特定字符,它确实有效: str_replace(' ', '', $string) ^ ^^ put chara

我在
UTF-8
中有一个字符串,带有
不可打印的空格
,我需要将其替换为
不可打印的换行符


类似这样的
str_replace(“”,
,$string)
但是带有
不可打印字符

如何:
str\u replace('',PHP\u EOL,$string)


或者更好:
str_replace(数组(“”,),PHP_EOL,$string)

如果您在引号之间键入特定字符,它确实有效:

str_replace(' ', '', $string)
             ^   ^^
        put characters here
由于这可能会有点难以键入和/或使源代码不那么明显,因此可以用字节表示法编写这些字符串文字。只需找出您正在谈论的特定字符以及它的编码字节:

str_replace("\xE2\x80\xAF", "\x0A", $string)

这将用常规换行符(
0A
)替换零宽度空间(UTF-8编码
E280 AF
)。在您选择的Unicode表中查找它。可能使用
echo bin2hex($string)
检查现有字符串,找出其中包含的字节。

不可打印空格/换行符是否可能重复?这些东西在Unicode中是不存在的,所以我希望它们很难搜索。第一个代码片段对我来说很有用,比如charm:),我刚刚在
$replace
参数中添加了一个带有enter键的换行符,它就起了作用。谢谢。对于那些在preg_replace没有在应该的时候拿起它的时候遇到麻烦的人来说,这很有魅力!在我的例子中,我刚刚添加了不可见空间E280 8b的十六进制编辑器值,它实际上起了作用。在很多事情都失败后,这是第一个对我有效的解决方案