On 7 jan, 05:08, Hidetoshi NAGAI <na... / ai.kyutech.ac.jp> wrote:

> > When I lauch it, the following error occurs:
>
> I can't regenerate the error.
>
> > .../ruby-1.9.1-rc1/lib/ruby/1.9.1/tk.rb:3028:in `find':
> > unknown encoding name - ArgumentError)
> >  ¨Âòﯮ®®¯òõâù­±®¹®±­ò㱯ìéâ¯òõâù¯±®¹®±¯ôë®ò⺳°²¸ºéî à¼ôï¨òåñõéòå䩾§
>
> Probably, the error occurs on Encoding.find(),
> but tk.rb:3028 doesn't include the method.
> On my archive, tk.rb:3028 is a comment line.
>
> Please check your '.../ruby-1.9.1-rc1/lib/ruby/1.9.1/tk.rb' file.
> tk.rb included ruby-1.9.1-rc1 has the following line (line:5553).
> ------------------------------------------------------
> RELEASE_DATE = '2008-12-21'.freeze
> ------------------------------------------------------
>

Your are right, I had inserted some comments for debugging
(without success).
So I have the same version as yours (standard ruby-1.9.1-rc1)

The problem occurs while calling the require "tk".
So the Tk.encoding cannot be used.

Here is a minimalist full sample

#!/usr/bin/env ruby
# encoding: iso8859-1    # because of the puts "ñÍñÑhant"
#
puts "Encoding.default_external=#{Encoding.default_external}"
puts "Encoding.default_internal=#{Encoding.default_internal}"
puts "Encoding.__ENCODING__=#{__ENCODING__}"

Encoding.default_external="iso-8859-15"
Encoding.default_internal="iso-8859-15"

puts "Encoding.default_external=#{Encoding.default_external}"
puts "Encoding.default_internal=#{Encoding.default_internal}"
puts "Encoding.__ENCODING__=#{__ENCODING__}"

puts "Bonjour l'ñÍñÑhant !"

# Simple crñÂtion d'un bouton avec "quitter" comme action
DEFAULT_TK_ENCODING=__ENCODING__
def tktest
    require 'tk'
    root = TkRoot.new { title "Test de Tk sous Ruby" }
    TkLabel.new(root) {
        text  'Essai de Ruby/Tk !'
        pack  { padx 15 ; pady 15; side 'left' }
    }
    TkButton.new(root) {
        text  'Quitter'
        pack  { padx 15 ; pady 15; side 'bottom' }
        command 'exit'
    }
    Tk.mainloop
end
tktest

And here are the full result:

ruby -version
ruby 1.9.1 (2008-12-30 patchlevel-0 revision 21203) [powerpc-
darwin9.6.0]


./tktest.rb
Encoding.default_external=ASCII-8BIT
Encoding.default_internal=
Encoding.__ENCODING__=ISO-8859-1
Encoding.default_external=ISO-8859-15
Encoding.default_internal=ISO-8859-15
Encoding.__ENCODING__=ISO-8859-1
Bonjour l'ñÍñÑhant !
/home/.../ruby-1.9.1-rc1/lib/ruby/1.9.1/tk.rb:3022:in `find':
     unknown encoding name -  (ArgumentError)
	from /home/.../ruby-1.9.1-rc1/lib/ruby/1.9.1/tk.rb:3022:
                  in `<top (required)>'
	from ./tktest.rb:19:in `require'
	from ./tktest.rb:19:in `tktest'
	from ./tktest.rb:33:in `<main>'

(the standard Tk window appears just before the error)

-- Maurice Diamantini at ensta.fr