From: "F. Senault" Date: 2008-08-13T20:42:25+09:00 Subject: Ruby 1.9, YAML & encodings Hello all. I'm trying to migrate a project to ruby 1.9. I have a lot of source, ressource, and data files, all encoded in ISO8859-1(5), so I'm trying to preserve this. The trouble is that YAML seems to load every string file that contains a non ASCII char with an encoding of "ASCII-8BIT" ; if I understand correctly, it should follow the Encoding.default_external value. A small example session : 13:20 fred@balvenie:~/ruby/blackops> ruby19 -v ruby 1.9.0 (2008-07-25 revision 18217) [i386-freebsd6] 13:20 fred@balvenie:~/ruby/blackops> irb19 >> require "yaml" => true >> Encoding.default_external => # >> txt = "\351\351\351" => "���" >> txt.encoding => # >> z = YAML.load(YAML.dump(txt)) => "\351\351\351" >> z.encoding => # >> z << "\351" ArgumentError: append incompatible encoding strings: ASCII-8BIT and ISO-8859-15 from (irb):62 from /usr/local/lib/ruby/1.9/irb.rb:149:in `block (2 levels) in eval_input' from /usr/local/lib/ruby/1.9/irb.rb:262:in `signal_status' from /usr/local/lib/ruby/1.9/irb.rb:146:in `block in eval_input' from /usr/local/lib/ruby/1.9/irb.rb:145:in `eval_input' from /usr/local/lib/ruby/1.9/irb.rb:69:in `block in start' from /usr/local/lib/ruby/1.9/irb.rb:68:in `catch' from /usr/local/lib/ruby/1.9/irb.rb:68:in `start' from /usr/local/bin/irb19:12:in `
' >> z.force_encoding('ISO8859-15') => "���" >> z << "\351" => "����" Any ideas ? (Nota : this is a hand compiled 1.9.0-3 version under FreeBSD, but it does the same with the official ports version, 1.9.0-1.) Fred -- Courage is not the absence of fear, but rather the judgement that something else is more important than fear. (Ambrose Redmoon)