gpt4 book ai didi

ruby-on-rails - 编码::UndefinedConversionError: "\xE4"从 ASCII-8BIT 到 UTF-8

转载 作者:数据小太阳 更新时间:2023-10-29 06:45:57 25 4
gpt4 key购买 nike

我试图获取这个 CSV-File使用 Net::HTTP

File.open(file, "w:UTF-8") do |f|
content = Net::HTTP.get_response(URI.parse(url)).body
f.write(content)
end

再次读取我的本地 csv 文件后,我得到了一些奇怪的输出。

Nationalit\xE4t;Alter 0-5

我尝试将其编码为 UTF-8,但出现错误 Encoding::UndefinedConversionError: "\xE4"from ASCII-8BIT to UTF-8

rchardet gem 告诉我内容是 ISO-8859-2。但转换为 UTF-8 将不起作用。

在普通文本编辑器中打开后,我看到它是正常编码的。

最佳答案

你可以使用force_encoding:

require 'net/http'

url = "http://data.linz.gv.at/katalog/population/abstammung/2012/auslg_2012.csv"
File.open('output', "w:UTF-8") do |f|
content = Net::HTTP.get_response(URI.parse(url)).body
f.write(content.force_encoding("UTF-8"))
end

但这会让你在你的 .cvs 文件中失去一些重点

如果你非常确定你将始终使用此 URL 作为输入,并且文件将始终保留此编码,你可以这样做

# encoding: utf-8
require 'net/http'

url = "http://data.linz.gv.at/katalog/population/abstammung/2012/auslg_2012.csv"
File.open('output', "w:UTF-8") do |f|
content = Net::HTTP.get_response(URI.parse(url)).body
f.write(content.encode("UTF-8", "ISO-8859-15"))
end

但这只适用于这个文件。

关于ruby-on-rails - 编码::UndefinedConversionError: "\xE4"从 ASCII-8BIT 到 UTF-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16428666/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com