将非ascii标点符号转换为ascii



我有以下字符串:

你的简历是非百科全书式的

请注意,'éæ是非ascii。我想保留éæ不变,但将"替换为ascii引号:"

如何在Ruby(而不是Rails)中进行这样的转换?我的数据库是UTF8,我仍然想存储重音字符,包括汉字、中文等,但只想替换标点符号。

找到了这个宝石,它正是我想要的-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"

"’".bytes返回字符的字节数,即[226, 128, 153]通过each_char循环遍历每个字符,并将每个字符的字节与[226, 128, 153]进行比较,然后用[39][39].pack("c*") 的正常字节替换该字符

最新更新