用字符串中的撇号替换单引号(Ruby)

时间:2013-05-07 13:04:52

标签: ruby

我的用户有时输入撇号(')而不是撇号()的符号,这会导致数据库出现问题。

我尝试用gsub代替它们:

result.gsub(/\‘/, "'")
result.gsub(/‘/, "'")

这些选项都不起作用 - 得到错误:

syntax error, unexpected $end, expecting ')'
  return result.gsub(/\‘/, "'").gsub("’", "'")
                          ^

他们是由Ruby保留的吗?我该如何更换它们?

3 个答案:

答案 0 :(得分:7)

如果您的文本编辑器不直接支持这样的UTF-8字符,您可以通过以下方式转义它们:

"\u2018"

所以在你的例子中,它将是:

result.gsub(/\u2018/, "'")

答案 1 :(得分:1)

尝试:

result.gsub("‘", "'")

它应该有用。

答案 2 :(得分:0)

除了@kiplantt所说的,以下内容也有效(只是测试过)

puts result.gsub(/(\`)/, "\\'")