我有以下字符串:
你的简历是非encyclopædia
注意',é和æ是非ascii。我希望完整地保留é和æ,但将'替换为ascii引号:'。
如何在Ruby(而非Rails)中进行此类转换?我的数据库是UTF8,我仍然想存储重音字符,包括kanjis,中文等,但只是想替换标点符号。
答案 0 :(得分:1)
发现这个宝石完全符合我的要求 - https://github.com/qwuen/punctuate
只需.punctuate!
:
irb(main):001:0> require 'punctuate'
=> true
irb(main):002:0> "Your résumé’s a non–encyclopædia".punctuate!
=> "Your résumé's a non-encyclopædia"
答案 1 :(得分:1)
"’".bytes
返回[226, 128, 153]
字符的字节
通过each_char
循环遍历每个字符,并将每个字符的字节与[226, 128, 153]
进行比较,然后将该字符替换为正常的'字节,即[39] [39].pack("c*")