我有以下字符串:
你的简历是非百科全书式的
请注意,'、é和æ是非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*")
的正常字节替换该字符