Bug #2567: Net::HTTP does not handle encoding correctly
http://redmine.ruby-lang.org/issues/show/2567

Author: Ryan Sims
Status: Open, Priority: Normal
ruby -v: ruby 1.9.1p376 (2009-12-07 revision 26041) [i686-linux]

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


----------------------------------------
http://redmine.ruby-lang.org