我主要处理英文字母和所有标点符号,不必担心欧洲口音。所以我唯一关心的是当用户粘贴从网上复制的东西时,例如一个撇号,当我在控制台上执行puts时(在Win7上),它输出
"ItΓÇÖs" # 实际上应该是 " It's "
所以我的主要问题是,是否有一种终极转换方法可以在Ruby中使用,只需正确替换所有 ,.;?!"'~` _- 为ASCII对应字符?
我对编码知之甚少,如果您认为这是错误的问题,请指导我应该寻找什么。
谢谢
我在出版业工作,经常需要处理此类问题。我们已经成功地使用了stringex https://github.com/rsl/stringex。他们有一个to_ascii方法,可以规范化unicode破折号等字符。
在 Ruby 2.0 中:
"ItΓÇÖs".encode("ASCII", invalid: :replace, undef: :replace, replace: '')
=> "Its"