UTF-8 PHP 将不可打印字符 "space" 替换为不可打印字符 "line break"

UTF-8 PHP replace non printable character "space" with non printable character "line break"

我在 UTF-8 中有一个带有 non-printable space 的字符串,我需要将其替换为 non-printable linebreak

像这样 str_replace('&nbsp;','<br />',$string);non-printable characters.

怎么样:str_replace('&nbsp;' , PHP_EOL , $string);

甚至更好:str_replace( array( '&nbsp;', ' ' ) , PHP_EOL , $string);

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

str_replace(' ', '', $string)
             ^   ^^
        put characters here

因为这可能有点难以输入 and/or 使源代码不那么明显,您可以用字节表示法编写这些字符串文字。只需弄清楚你在谈论什么特定字符以及它编码的字节:

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

这是用常规换行 (0A) 替换零宽度 SPACE(UTF-8 编码 E2 80 AF)。在您选择的 Unicode table 中查找。可能使用 echo bin2hex($string) 检查您现有的字符串以确定它包含哪些字节。