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

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

ただいまの
回答率

90.61%

  • Ruby

    7348questions

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

  • Windows 8

    116questions

    Microsoft Windows 7の後続であり、タッチベースの端末やタブレット機種に向けた新しいインターフェイスを採用しています。

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

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 1,721

doju_m

score 12

初めまして。
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側で何らかのワークアラウンドがないか、ご存知の方おられましたらお力を貸していただきたく、お願いいたします。
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

0

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2015/06/03 21:10

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

    キャンセル

0

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 90.61%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    Ruby ハッシュから配列に変更したい

    Ruby初心者です。 ハッシュから配列にしたいのですが、何か方法はありますでしょうか? どなたか教えていただけませんでしょうか? サンプルプログラムも書いていただけるとありがた

  • 解決済

    rubyを使ってSQlite3を動かす

    rubyでsqlite3を動かそうとしているのですが、文字化けをして困っているので、力を借りに来ました。 ソースは、 require 'sqlite3' db = SQLite

  • 解決済

    次の次の…の値をかえすには?

    以下の irb(main):002:0 で行なっていることを簡単にできないでしょうか? irb(main):001:0> i = 100 => 100 irb(main):002

  • 解決済

    rubyでのgemのインストールについて相談です。

    前提・実現したいこと rubyのgemのインストールについて相談です。つい先日からrubyを始め、基本的な事項の勉強と並行しつつ、ネット上のソースをコピーして、実際どう動くのか試

  • 解決済

    改行について(超初歩的な問題です)

    前提・実現したいこと 改行(?)のやり方でわからないことがあります。ちなみにプログラミングの勉強を初めて3日ほどのど素人です。よろしくお願いします。 (例) a=20 if a >

  • 解決済

    Ruby 2.4.1の環境整備

    前提・実現したいこと Macのターミナルでruby 2.4.1をインストールして使いたいのですが、ネットでやり方を調べてやってもうまく行きません。また、irbで日本語を記述すると文

  • 解決済

    Ruby NIL,TRUE,FALSEとは何なのか?

     質問 Ruby 2.5.0 リファレンスマニュアル > 変数と定数では以下のように書かれています nil NilClassクラスの唯一のインスタンス Object#

  • 解決済

    楽しいRuby 第5版

    楽しいRuby 第5版 8.7.2 名前空間のテスト方法(背景ピンク色の部分)のテストは、Rubyコンソールのirbを使用 してテストするのが適当でしょうか? また、その場

同じタグがついた質問を見る

  • Ruby

    7348questions

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

  • Windows 8

    116questions

    Microsoft Windows 7の後続であり、タッチベースの端末やタブレット機種に向けた新しいインターフェイスを採用しています。