我有包含‍ Zero width joiner的文本,它在UI中不可见,但当我将其作为短信发送时,它在iPhone中显示为?问号。
我尝试过使用gsub删除它,但它没有被删除。
text.gsub("&zwj\;", "")有没有从文本中删除这种看不见的字符的方法?
更新:
除了@matt的回答
Unicode具有以下零宽度字符:
<代码>F215
要在文本中替换它们,可以使用简单的正则表达式:
text = text.gsub(/[\u200B-\u200D\uFEFF]/, '')发布于 2018-06-05 01:36:52
字符串‍是用于零宽度拼接器的HTML字符实体。当web浏览器看到它时,它会用一个实际的零宽度拼接器替换它,但就Ruby而言,它只是一个5个字符的字符串。
您要做的是指定实际的零宽度拼接器字符。它有代码点U+200D,所以你可以像这样使用它,使用Ruby的Unicode转义:
text.gsub("\u200D", "")这应该会删除零宽度拼接器字符,而不是像原始代码那样查找字符串‍。
发布于 2018-06-02 03:22:05
"blah blah blah".gsub(/[^[:print:]]/, '')应删除所有不可打印的字符。
https://stackoverflow.com/questions/50647999
复制相似问题