在Ruby中,试图将这些奇怪的引号转换为“常规”引号

时间:2009-06-26 01:55:50

标签: ruby text string

我正在尝试解析具有奇怪引号的文本文件 “和”成“正常的引语”,如“

我试过了:

text.gsub!("“",'"')
text.gsub!("”",'"')

但是当它完成后,它们仍然存在并显示为

\x93 and \x94

所以我尝试添加它也没有运气:

text.gsub!('\\x93', '"')
text.gsub!('\\x94', '"')

问题是,当我试图在网页上显示那些奇怪的引语时,它会使带有问号符号的奇怪钻石成为:

3 个答案:

答案 0 :(得分:1)

似乎有效:

text = "“foo”"
=> "\342\200\234foo\342\200\235"
irb(main):002:0> text.gsub!("“",'"')
=> "\"foo\342\200\235"
irb(main):003:0> text.gsub!("”",'"')
=> "\"foo\""

您需要使用十六进制编辑器来确定所涉及的所有字符代码。

答案 1 :(得分:0)

Re:第二个问题,为什么奇怪的引号在网页上显示为 符号:

您的问题是您的网页未处于UTF-8模式。为了得到它,请参阅 http://www.w3.org/International/O-HTTP-charset

如果您无法更改网络服务器,请在网页的head部分添加元线:http://www.utf-8.com/

拉​​里

答案 2 :(得分:0)

你的第一个gsubs应该可行。第二组gsubs不起作用的原因是你使用单引号和双反斜杠。尝试相反的方式:

text.gsub!("\x93", '"')
text.gsub!("\x94", '"')

您也可以在一行中执行此操作:

text.gsub!("\x93", '"').gsub!("\x94", '"')
# or
text.gsub!(/(\x93|\x94)/, '"')

您确定字符串的编码是否正确?