在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" (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |