我正在使用 Ruby 打开一个 URL 并阅读其内容。我正在阅读的文件的内容类型是“文本/纯文本”。
问题是它包含一些我想转义的字符。例如,纯文本中出现的字符之一是“\240”,这是一个连字符的 ASCII。
我很好奇这是如何生成的,因为我在文本中的任何地方都没有看到连字符。然而它无形地存在,当我使用 puts
在控制台中打印文本时,“\240”出现了。
其次,我该如何避开这些奇怪字符的实例?理想情况下,我想转义所有形式为“\[some number]”的字符。我正在使用
"\240".gsub(Regexp.new("\\\d+"),"")
但是好像不行。
是否有更传统的方法来净化从打开 URL 读取的纯文本内容?
最佳答案
您可能想要检查返回的文本的字符集。它可能是 UTF-8,它经常有那么高的字符。 Ruby 1.9 对字符集和它们之间的切换有很好的支持。我使用 str.encode("US-ASCII", :invalid => :replace, :undef => :replace, :replace => "?")
将字符串强制转换为标准 ASCII , 用 ?
替换任何奇怪的字符。
关于ruby - 清理来自 open(url).read 的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6618883/