Project

General

Profile

Bug #1506

irbで日本語を入力できない

Added by no6v (Nobuhiro IMAI) over 10 years ago. Updated over 8 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
ruby -v:
ruby 1.9.2dev (2009-05-23 trunk 23548) [i686-linux]
Backport:
[ruby-dev:38535]

Description

=begin
[ruby-dev:36198]と同じかもしれないのですが、GNU readlineでも入力出来ないので報告します。

$ uname -a
Linux ribot 2.6.29-1-686 #1 SMP Fri Apr 17 14:35:16 UTC 2009 i686 GNU/Linux
$ ruby1.9 -v
ruby 1.9.2dev (2009-05-23 trunk 23548) [i686-linux]
$ echo $LANG
ja_JP.UTF-8
$ irb1.9 -f
irb(main):001:0> ENCODING
=> #Encoding:UTF-8
irb(main):002:0> :あああ
/home/nov/ruby/lib/ruby/1.9.1/irb/ruby-lex.rb:539:in `block in lex_int2': invalid byte sequence in UTF-8 (ArgumentError)

irb(main):002:0> の行は「:あああ」と入力してるつもりなのですが、
\x3a\xe3\xe3 みたいなのが出力されてるようです。

readline を使わなかったり、

$ irb1.9 -f --noreadline
irb(main):001:0> :あああ
=> :あああ

r23298 に戻すとうまく動くので、
r23299 が原因ではないかと思うのですが……

$ irb1.9 -f --readline
irb(main):001:0> RUBY_DESCRIPTION
=> "ruby 1.9.2dev (2009-04-27 trunk 23298) [i686-linux]"
irb(main):002:0> :あああ
=> :あああ
=end

History

#1

Updated by no6v (Nobuhiro IMAI) over 10 years ago

=begin
いまいです。

From: Nobuhiro IMAI
Date: Sat, 23 May 2009 19:27:16 +0900

irb(main):002:0> の行は「:あああ」と入力してるつもりなのですが、
\x3a\xe3\xe3 みたいなのが出力されてるようです。

Readline.input= に IO を渡すとおかしくなるようです。文字単位で取れてる
けど、バイト単位でしか出力されてない?

$ cat rl.rb
# -- coding: utf-8 --
p DATA.external_encoding
p DATA.getc
require "readline"
Readline.input = DATA
p Readline.readline(">> ", false)
END
ああああ
$ ruby1.9 -v rl.rb
ruby 1.9.2dev (2009-05-26 trunk 23576) [i686-linux]
#Encoding:UTF-8
"あ"

??
"\xE3\xE3"

# ?? は \xE3\xE3 です。\xE3 は「あ」の先頭のバイトですよね。
--
Nobuhiro IMAI nov@yo.rim.or.jp
Key fingerprint = F39E D552 545D 7C64 D690 F644 5A15 746C BD8E 7106

=end

#2

Updated by naruse (Yui NARUSE) over 10 years ago

  • Status changed from Open to Closed
  • % Done changed from 0 to 100

=begin
Applied in changeset r23591.
=end

Also available in: Atom PDF