簡體   English   中英

從文本文件中讀取字符串時出現頑固的字符編碼錯誤(Ruby / Rails)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM