如何用UTF-8字符串的带引号的gsub写?

时间:2012-02-15 23:51:49

标签: ruby-on-rails ruby unicode utf-8 ruby-1.9.2

我正在为String类编写一个扩展方法来清理非ASCII字符。我正在清理的字符串是UTF-8。

在文件中使用非ASCII字符时,控制台将无法启动,因为它将卷曲引号解释为常规引号。

如何逃避gsub中的卷曲引用?

如何编写使用unicode作为假引号的gsub(例如U + 201C)。

使用Rails 3.07和Ruby 1.9.2。

1 个答案:

答案 0 :(得分:14)

您可以在双引号字符串中使用的正则表达式中使用相同的\u转义符:

s.gsub(/[\u201c\u201d]/, '"')

例如:

>> s = "\u201Cpancakes\u201d"
=> "“pancakes”"
>> puts s.gsub(/[\u201c\u201d]/, '"')
"pancakes"