加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

在Ruby中,如何将?,à,é,?等特殊字符转换为e,a,e,a?

发布时间:2020-12-17 01:55:15 所属栏目:百科 来源:网络整理
导读:我想将像?这样的字符转换为简单的e.我希望转换语言以及人们如何键入城市.例如,大多数人在搜索时实际上键入了Brasilia,而不是Brasília.当像Rueters这样的新闻机构报道巴西利亚时,他们通常将其拼写为巴西利亚.所以再次,只是寻找任何宝石(或字符编码数学/方法
我想将像?这样的字符转换为简单的e.我希望转换语言以及人们如何键入城市.例如,大多数人在搜索时实际上键入了Brasilia,而不是Brasília.当像Rueters这样的新闻机构报道巴西利亚时,他们通常将其拼写为巴西利亚.所以再次,只是寻找任何宝石(或字符编码数学/方法可能更好,因为可以使用该答案,以供参考,在其他语言).

这只是为了处理典型的“扩展ASCII”字符集.注意:我正在使用标准的Unicode字符串.

解决方法

从 Ruby 2.2开始,有 String#unicode_normalize到 normalize个unicode字符串. NFKD表单分隔字符和标点符号:

'?'.unicode_normalize(:nfkd).chars
#=> ["e","?"]
#     ^    ^
#   char  punctuation

由于该字符是有效的ASCII码点而标点符号不是,因此可以用它来删除后者:

'?,à,é,?'.unicode_normalize(:nfkd).encode('ASCII',replace: '')
#=> "e,a,e,a"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读