[英]Ruby Character Encoding Confusion When Reading Same File In Different Environments
[英]Stubborn character encoding errors when reading strings from text file (Ruby/Rails)
我一直在尝试导入从PDF阅读器应用程序(SODA-PDF)生成的长文本文件。 源文档是PDF格式的脚本。
转换后的文本文件在记事本中看起来还可以,但是在尝试将文件读入字符串并对其进行操作时出现了许多错误。
我在各种线程中看到的以下方法似乎都不起作用:
clean1=Iconv.conv('ASCII//IGNORE', 'UTF8', s)
要么
clean1=s.encode('UTF-8', invalid: :replace, undef: :replace, replace: '', UNIVERSAL_NEWLINE_DECORATOR: true)
要么
clean1=s.gsub(/[\u0080-\u00ff]/,"")
第一种方法,使用Iconv给出
Iconv::InvalidEncoding: invalid encoding ("ASCII", "UTF8")
调用时。
第二种方法似乎可以工作,但是在各种字符串操作(如
lines= s.split("\n") unless s.blank?
与
ArgumentError: invalid byte sequence in UTF-8
(拆分还是空白?将引发异常。)
第三种方法也会失败,并显示“ UTF-8中的无效字节序列”错误。
我在整个字符编码方面都比较朦胧,因此请原谅任何明显的愚蠢之处。
我将通过字符过滤来尝试一个字符,但这有点痛苦,因为我正在使用的文档可以超过100页,并且我希望有一个更简单的解决方法。
信封:Win7 64 / ruby 1.9.3p484(2013-11-22)[i386-mingw32] / Rails 4.0.3
我发现我的源文件是按照ISO-8859-1编码的。 能够转换为UTF-8,现在一切正常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.