From: cardoso_tiago@... Date: 2017-10-22T11:01:40+00:00 Subject: [ruby-core:83498] [Ruby trunk Feature#2567] Net::HTTP does not handle encoding correctly Issue #2567 has been updated by chucke (Tiago Cardoso). Bitten by this as well. I'd go the route proposed earlier: 1. By default, encode the body using the charset set in content-type header. 2. Provide an option to disable this, to keep old behaviour. This way, people having to deal with "mis-behaving" servers have a way to "opt-in" on their legacy workaround, while everyone else gets the "least-surprise" resource. ---------------------------------------- Feature #2567: Net::HTTP does not handle encoding correctly https://bugs.ruby-lang.org/issues/2567#change-67510 * Author: slide_rule (Ryan Sims) * Status: Assigned * Priority: Normal * Assignee: naruse (Yui NARUSE) * Target version: ---------------------------------------- =begin A string returned by an HTTP get does not have its encoding set appropriately with the charset field, nor does the content_type report the charset. Example code demonstrating incorrect behavior is below. #!/usr/bin/ruby -w # encoding: UTF-8 require 'net/http' uri = URI.parse('http://www.hearya.com/feed/') result = Net::HTTP.start(uri.host, uri.port) {|http| http.get(uri.request_uri) } p result['content-type'] # "text/xml; charset=UTF-8" <- correct p result.content_type # "text/xml" <- incorrect; truncates the charset field puts result.body.encoding # ASCII-8BIT <- incorrect encoding, should be UTF-8 =end -- https://bugs.ruby-lang.org/ Unsubscribe: