ターミナルで"irb"と入力し、a = "アイウエオ"と日本語入力すると文字化けします。
ターミナルで irb --noreadlineと入力しても治りません。
OSなど環境と、「なにをやったらこうなった」を具体的に追記してください。
rubyのバージョンを2.4.1にした後atomでいろんなパッケージをインストールしたら文字化けしました。
OSなど環境と、「なにをやったらこうなった」を具体的に追記してください。
答え方が分からないのですかね?
「OSなど環境」の具体的な例としては、
Windows10に、RubyInstallerでインストールしたRuby2.4.1
「なにをやったらこうなった」の具体的な例としては、
D:\>irb
irb(main):001:0> a="アイウエオ"
=> "\x{8341}\x{8343}\x{8345}\x{8347}\x{8349}"
irb(main):002:0>
Macに、rubyinstallでruby2.4.1
irb > a ="\U+FFE3(日本語を入力した後エンターを押したら出る)
=> ""
もう一度、私の2019/03/20 16:06 のコメントをよく読んで、それに倣って書いてください。
今のところ、有効な情報は、MacOSという1つだけです。
Macに、rubyinstallでruby2.4.1
irb > a ="\U+FFE3(日本語を入力した後エンターを押したら出る)
=> ""
> irb > a ="\U+FFE3
これだけですか?文字列を閉じる " は出ていないと言う事ですか?
iirb(main):001:0> a = "\U+FFE3\U+FFE3"
=> ""
文字列を閉じるは出てきます。
ですが結果は空白になってしまいます。
今ターミナルで irb --noreadlineでは日本語入力が成功しました。
ですがirbで行ったらまた文字化けしました。
> irb --noreadlineでは日本語入力が成功しました。
これは、何も問題がないという意味ですか?
> a = "\U+FFE3\U+FFE3"
入力したのは "アイウエオ" なんですよね?
irbで、Encoding.default_external と入れると何と出ますか?
Encoding.default_internal と入れると何と出ますか?
たくさん聞くと1つしか回答しない人がいますが、全部回答してください。
Encoding.default_external↓
NoMethodError: undefined method `default_externa' for Encoding:Class
Did you mean? default_external
default_external=
default_internal
default_internal=
from (irb):1
from /usr/bin/irb:11:in `<main>'
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
Encoding.default_internal↓
=> nil
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
アイウエオは例えです。
一応アイウエオと入力した結果も貼ります
irb(main):003:0> a =
"\U+FFE3\U+FFA2\U+FFE3\U+FFA4\U+FFE3\U+FFA6\U+FFE3\U+FFA8\U+FFE3\U+FFAA"
> NoMethodError: undefined method `default_externa' for Encoding:Class
タイプミスですね。
\U+FFE3 という表記がRubyのものではないので(Rubyだと\uFFE3)、\U+FFE3 でググってみたところ、Mac固有の問題で、1行入力サブルーチンが日本語(?)に対応していないという事らしいです。
解決策としては、--norealine を付けるか、自分でreadlineライブラリを入れてそれを使うように設定するか。
なぜ \U+FFE3 などとなってしまうのかの理由は見つからず。
回答ありがとうございます。
これからは--noreadlineで対処することにします
回答1件
あなたの回答
tips
プレビュー