【发布时间】:2018-06-01 16:56:20
【问题描述】:
我的文本包含 ‍ Zero width joiner 在 UI 中不可见,但是当我将其作为短信发送时,它在 iPhone 中显示为 ? 问号。
我曾尝试使用 gsub 删除它,但它没有被删除。
text.gsub("&zwj\;", "")
有没有办法从文本中删除这种不可见的字符?
更新:
除了@matt 的回答
Unicode 具有以下零宽度字符:
- U+200B 零宽度空间
- U+200C 零宽度非连接 Unicode 代码点
- U+200D 零宽度连接符 Unicode 代码点
- U+FEFF 零宽度不间断空格 Unicode 代码点
要在文本中替换它们,您可以使用简单的正则表达式:
text = text.gsub(/[\u200B-\u200D\uFEFF]/, '')
【问题讨论】:
-
\ 是干什么用的?只需使用
"‍"。 -
@Phlip
` is use to escaping special characters. Removing` 也不起作用。 -
运行
p text或puts text.inspect,然后编辑您的帖子并添加结果。 ! 内可能还有更多有趣的事情,例如零宽度的连接符! -
您的字符串不包含任何特殊字符。请编辑并使用复制/粘贴插入包含特殊字符的字符串。
标签: ruby string ruby-on-rails-4