我一直使用rake文件數個月讀取CSV文件中的數據。我最近嘗試讀入新的CSV文件,但不斷收到錯誤「UTF-8中的無效字節序列」。我試圖手動找出問題所在,但收效甚微。 csv文件只是文本和URL,最初有一些不尋常的字符(原始文本中有特別的bulletpoints),但我刪除了這些字符,並且找不到任何其他異常。讀取CSV文件 - UTF-8中的無效字節序列
有沒有辦法自動繞開這個問題,並識別和刪除問題字符?
我一直使用rake文件數個月讀取CSV文件中的數據。我最近嘗試讀入新的CSV文件,但不斷收到錯誤「UTF-8中的無效字節序列」。我試圖手動找出問題所在,但收效甚微。 csv文件只是文本和URL,最初有一些不尋常的字符(原始文本中有特別的bulletpoints),但我刪除了這些字符,並且找不到任何其他異常。讀取CSV文件 - UTF-8中的無效字節序列
有沒有辦法自動繞開這個問題,並識別和刪除問題字符?
我已經找到了解決方案,從一個字符串丟棄所有無效的UTF8字節:
ic = Iconv.new('UTF-8//IGNORE', 'UTF-8')
valid_string = ic.iconv(untrusted_string + ' ')[0..-2]
(從this blog post拍攝)
希望這有助於。
你把這些放在哪裏。我有這樣的事情:
CSV.foreach("/Users/CarlBourne/Customers/Lloyds/small-test2.csv", options) do |row |
name, workgroup, address, actual, output = row
next if nbname == "NBName"
@ssl_info[name] = workgroup, address, actual, output
ic = Iconv.new('UTF-8//IGNORE', 'UTF-8')
clean = ic.iconv(output + ' ')[0..-2]
puts clean
end
然而,它並沒有縫合的工作。
非常感謝! – Texas