我浪费了很多时间处理字符串(由其他来源生成),后来发现问题在于字符串存在非可打印字符。今天我正在处理JavaScript。有人知道如何在JavaScript中替换非可打印的Unicode字符吗?
我在这里找到了类似的内容:
my_string.replaceAll("\\p{C}", "?");
和这里:
filename.replace(/[^a-z0-9\.]+/gi, "");
最后一个选项替换括号中没有的所有字符。无论我使用哪种语言,这样做总是会困扰我,并且我已经厌倦了尝试弄清楚哪些字符破坏了我的代码。因此,我想能够将所有这些不可见字符替换为可见的字符,以便稍后完全删除它们。
\uD7FC-\uF8FF
- 这个范围包括代理项 (\uD800 - \uDFFF
)。移除代理项似乎很奇怪,因为JS将其作为字符串的UTF-16编码的一部分使用。移除它们实际上意味着失去了16个字符平面 - 其中大多数都是可打印的。简而言之 - 我认为这个问题需要一个基本的解释和代码。 - Olga