是否可以使用Net::HTTP
强制对read_body
响应进行编码?我知道有可能call force_encoding
on the response.body
itself,但这意味着你必须阅读整个回复并失去阅读它的好处。
我正在从uri读取csv文件(我还不想解析CSV)并将其写入本地文件:
Net::HTTP.start(uri.host, uri.port) do |http|
request = Net::HTTP::Get.new(uri)
http.request request do |response|
File.open(target_file, 'w') do |f|
response.read_body do |chunk|
f.write(chunk)
end
end
end
end
内容编码为ISO-8859-1,但Net::HTTP
将其视为ASCII 8BIT。
(我通过将其写成二进制并稍后处理编码来解决问题)