gpt4 book ai didi

ruby - 如何从文本中删除零宽度空格字符

转载 作者:行者123 更新时间:2023-12-04 14:23:38 26 4
gpt4 key购买 nike

我有包含 ‍ 的文本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]/, '')

    最佳答案

    字符串 ‍是零宽度连接器的 HTML 字符实体。当 Web 浏览器看到它时,它将用实际的零宽度连接器替换它,但就 Ruby 而言,它只是一个 5 个字符的字符串。

    您想要做的是指定实际的零宽度连接字符。它有代码点 U+200D,所以你可以像这样使用它,使用 Ruby 的 Unicode 转义:

    text.gsub("\u200D", "")

    这应该删除零宽度连接字符,而不是查找字符串 ‍您的原始代码正在做什么。

    关于ruby - 如何从文本中删除零宽度空格字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50647999/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com