From: "Wolfgang Nádasi-Donner" Date: 2007-10-24T06:13:47+09:00 Subject: Re: Encoding::primary_encoding I really don't understand what effects the primary encoding has on IO. The first tests show effect. The program: >>>>> Program >>>>> puts "Primary encoding: #{Encoding.primary_encoding}" puts "*** bomdata.txt ***" File.open('bomdata.txt', 'r') do |f| u = f.read puts "u.encoding: #{u.encoding}" puts "u.length: #{u.length}" puts "u.bytesize: #{u.bytesize}" puts "Character values in string 'u':" u.each_char{|c|puts("%X" % c.ord)} puts "Character values in string 'u.force_encoding(UTF-8)':" u.force_encoding('UTF-8').each_char{|c|puts("%X" % c.ord)} end puts "*** nobomdata.txt ***" File.open('nobomdata.txt', 'r') do |f| v = f.read puts "v.encoding: #{v.encoding}" puts "v.length: #{v.length}" puts "v.bytesize: #{v.bytesize}" puts "Character values in string 'v':" v.each_char{|c|puts("%X" % c.ord)} puts "Character values in string 'v.force_encoding(UTF-8)':" v.force_encoding('UTF-8').each_char{|c|puts("%X" % c.ord)} end>>>>> End of Program >>>>> The protocol: >>>>> Protocol >>>>> C:\Dokumente und Einstellungen\wolfgang\Desktop>ruby19 -v ruby 1.9.0 (2007-10-23 patchlevel 0) [i386-mingw32] C:\Dokumente und Einstellungen\wolfgang\Desktop>ruby19 utf8_bom_read.rb Primary encoding: *** bomdata.txt *** u.encoding: u.length: 13 u.bytesize: 13 Character values in string 'u': EF BB BF 40 CE BB E2 85 93 F0 9D 84 9E Character values in string 'u.force_encoding(UTF-8)': FEFF 40 3BB 2153 1D11E *** nobomdata.txt *** v.encoding: v.length: 10 v.bytesize: 10 Character values in string 'v': 40 CE BB E2 85 93 F0 9D 84 9E Character values in string 'v.force_encoding(UTF-8)': 40 3BB 2153 1D11E >>>>> End of Protocol >>>>> Wolfgang N��dasi-Donner