From: Kouhei Sutou Date: 2009-05-09T13:38:23+09:00 Subject: [ruby-core:23404] [Bug #1449] [REXML] detected encoding isn't used correctly Bug #1449: [REXML] detected encoding isn't used correctly http://redmine.ruby-lang.org/issues/show/1449 Author: Kouhei Sutou Status: Open, Priority: Normal Category: lib ruby -v: ruby 1.9.2dev (2009-05-09 trunk 23374) [x86_64-linux] REXML::Source can detect source encoding by XML declaration. REXML::IOSource can also detect it but it's not used correctly. REXML::IOSource uses detected encoding to convert read data from @source. If detected encoding is UTF-8 read data isn't converted. (ref. rexml/encodings/UTF-8.rb) If detected encoding is UTF-8 but @source.external_encoding isn't UTF-8, it may cause a problem. If @source.external_encoding is ASCII-8BIT and @source only has ASCII data, it doesn't cause any problems. If @source.external_encoding is ASCII-8BIT and @source has non-ASCII data, it causes a problem. In the case, "@buffer << read_data_from_source" causes an Encoding::CompatibilityError. It breaks correct XML parsing. ---------------------------------------- http://redmine.ruby-lang.org