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”
=> trueEncoding.default_external
=> #Encoding:ISO-8859-15txt = “\351\351\351”
=> “ééé”txt.encoding
=> #Encoding:ISO-8859-15z = YAML.load(YAML.dump(txt))
=> “\351\351\351”z.encoding
=> #Encoding:ASCII-8BITz << “\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:inblock (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:inblock 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:inblock in start' from /usr/local/lib/ruby/1.9/irb.rb:68:in
catch’
from /usr/local/lib/ruby/1.9/irb.rb:68:instart' 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