Zom*_*ies 4 ruby unicode special-characters
我想要的字符,如转换ë到只是简单的e.我希望转换语言以及人们如何键入城市.例如,大多数人在搜索时实际上键入了Brasilia,而不是Brasília.当像Rueters这样的新闻机构报道巴西利亚时,他们通常将其拼写为巴西利亚.如此反复,只是为了寻找任何宝石(或字符编码数学/方法可能会更好,因为这个问题的答案可以用,以供参考,在其他语言).
这只是为了处理典型的"扩展ASCII"字符集.注意:我正在使用标准的Unicode字符串.
Gab*_*yel 20
你可能正在寻找I18n#transliterate.
宝石在这里,安装gem install i18n.
例:
irb(main):001:0> require 'i18n'
=> true
irb(main):002:0> I18n.enforce_available_locales = false
=> false
irb(main):003:0> I18n.transliterate("ë,à,é,ä")
=> "e,a,e,a"
Run Code Online (Sandbox Code Playgroud)
Ste*_*fan 11
使用Ruby 2.2开始,就String#unicode_normalize以标准化 unicode字符串.NFKD表单分隔字符和标点符号:
'ë'.unicode_normalize(:nfkd).chars
#=> ["e", "?"]
# ^ ^
# char punctuation
Run Code Online (Sandbox Code Playgroud)
由于该字符是有效的ASCII码点而标点符号不是,因此可以用它来删除后者:
'ë,à,é,ä'.unicode_normalize(:nfkd).encode('ASCII', replace: '')
#=> "e,a,e,a"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2574 次 |
| 最近记录: |