質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

2回答

5137閲覧

対処法求む: rb-readline + Windows8.1で日本語が入力できない

doju_m

総合スコア19

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2015/06/03 07:40

初めまして。
Windows 8.1(x64)でRuby 2.0.0p643 (2015-02-25) [i386-mingw32]を使用しています。
(RubyInstallerで導入したものです)
5月の末ごろ、突然irbで日本語の入力が正しくできなくなりました。
(いわゆる全角文字がすべて文字化けする)
分からないなりに調べてみたところ、どうもCP932の2バイト文字について、トレーラーバイトの入力を軒並み取りこぼしているようでした。
一旦site_ruby下のrb-readlineを削除、gemで最新のものを入れてみましたが、状況変わりませんでした。
Windows 7(x64)のマシンで同じバージョンのRubyをインストールした環境ではirbで問題なく日本語の入力ができていますので、Windows Updateの際にWindows8.1環境でなにがしか後方互換性を破壊する変更が行われたのでは……と推測していますがそれらしい情報も見当たらず、対処方法も見つからない状況です。
素のコマンドプロンプトには問題なく日本語入力はできていますし、RubyスクリプトでCP932のテキストを読むこともできています。
rb-readline側で何らかのワークアラウンドがないか、ご存知の方おられましたらお力を貸していただきたく、お願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

rb-readlineのissueを確認したところ
https://github.com/ConnorAtherton/rb-readline/issues/92
で同様の症状が上がっていました。
issue提起者が提案しているパッチを当てたところ、ほぼ日本語も通るようになりました。
ただ、それでも_rl_dispatch_subseq()内でいくつかの文字がNG判定されてしまうので
暫定でCP932環境ではNG判定を無視させたところひとまずなんとかなっているようです。
(NG判定式の意味がよく分かっていないので危険ではあるのですが(汗))
パッチ自体は提案から1年以上放置されていて取り込みの見込みがないのが気がかりですが、とりあえずこのまま様子を見てみます。

投稿2015/06/08 02:14

doju_m

総合スコア19

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

回避方法のアドバイスになりますが、irb --noreadlineで問題が解消するようであれば、
%HOME%\.irbrcファイルに、IRB.conf[:USE_READLINE] = falseと書いておくと、しのげます。

この場合、readlineライブラリが使われず、CMD.EXEの行入力機能が使われるようになります。

投稿2015/06/03 08:37

otn

総合スコア84533

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

doju_m

2015/06/03 12:10

ありがとうございます。仰せの対応でreadlineを切ってしまえば件の症状は解決しました。……が、readlineなしということで履歴が辿れなくなるのは痛いですね。 当面これでしのぎつつ、なんとかreadlineを生かせる方法がないかもう少しもがいてみます。
otn

2019/07/18 00:49 編集

あれ、昔はできたはずだなあと思って試してみると、なにか1文字入力すると、その状態から↑↓がつかえるようです。昔はそんなことをしなくても使えていた。 そのコマンドプロンプトを起動している間は、irbを再起動しても引き継がれます。 コマンドプロンプトの生でヒストリ機能と同じくDOSKEY.EXEの機能です。F7とかも使えます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問