プロが教える店舗&オフィスのセキュリティ対策術

Rubyのコマンドプロンプト上での実行についての質問です。さくらエディタを使ってます。
現状のRubyではgets.chompは使えないのでしょうか?
入力を受けたい場合はどうすればいいのでしょうか?
 name="名前"
 puts "#{name}です"
どいった変数や、if,日本語などは使えないのでしょうか?
それらの使われたファイルを実行しようとエラーします。
どうすればいいのでしょうか?
おねがいします。

質問者からの補足コメント

  • つらい・・・

    puts "名前"だと
    C:/Users/�r���z�C/Desktop/Programing/Ruby/hello.rb:9: invalid multibyte char (UTF-8)
    とでてきます
    name=gets.chomp
    puts "#{name}"だと
    C:/Users/---/Desktop/Programing/Ruby/hello.rb:9:in `gets': No such file or
    directory @ rb_sysopen - rb (Errno::ENOENT)
    from C:/Users/---/Desktop/Programing/Ruby/hello.rb:9:in `gets'
    from C:/Users/---/Desktop/Programing/Ruby/hello.rb:9:in `<main>'

    No.1の回答に寄せられた補足コメントです。 補足日時:2015/12/18 13:17

A 回答 (4件)

そのエラーになるソースコードと具体的なエラーメッセージを載せてください。


「エラーします」だけでは、あらゆる可能性が考えられるので、アドバイスのしようがありません。


例えば、日本語を使う場合、マジックコメントを書く等の方法で「スクリプトがどの文字コードで書かれているか」を指定する必要があります。
http://docs.ruby-lang.org/ja/2.2.0/doc/spec=2fm1 …
これを忘れると
EncodingCompatibilityError: incompatible character encodings: XXXXXX and US-ASCII
といったエラーになります。

ソースコードとエラーメッセージがあれば、上記が原因かどうか判断できます。
ですが、どちらも無ければ、別の原因を排除できません。
この回答への補足あり
    • good
    • 0

Rubyのソースファイルは、基本的に「UTF-8」で作成する必要があります。


サクラエディタでプログラム(.rb)を保存する際、
「ファイル」-「名前を付けて保存する」
下にある、「文字コードセット」を「UTF-8」に変更して保存して実行してみてください。
    • good
    • 0

そのエラーだと、 実際には Shift_JISで書いてあるのに、マジックコメント等で UTF-8になっている(または、何も指定していないために、デフォルトのUTF-8として扱われている)のが原因です。


「スクリプトエンコーディング」を参考に正しく設定するか、ファイルの文字コードを変えましょう。

gets.chompの方は、こちらではちゃんと動作します。

No such file or directory @ rb_sysopen - rb (Errno::ENOENT)
というエラーメッセージでは 「rb_sysopen - 」の後に来るのがその「見つからないファイルまたはディレクトリ」になっているはずです。
このメッセージからすると「rb」というファイルが見つからない、と言っているように見えます。

hello.rb:9 とあるので、 getsの前に8行あるはずです。
ここで何か問題があるのか、あるいは、実行方法に問題があるか、です。


hello.rb の全文と、実行方法はそれぞれどうなっているのですか?
    • good
    • 0

>puts "名前"だと


>C:/Users/�r���z�C/Desktop/Programing/Ruby/hello.rb:9: invalid multibyte char (UTF-8)
>とでてきます

この補足をみると、
encodingがUTF-8で、ソースをかいているのがShift-JISコードのように見えます。
あなたが、使用されていつエディタでは、どの文字コードで書いているかが判りますでしょうか。
もし、わかるなら、文字コードをUTF-8で保存するようにすれば、解決します。
もし、文字コードがわからなければ、Shift-JISコードの可能性が高いので、
hello.rbの先頭行に
# encoding: WINDOWS-31J
を追加してください。(必ず先頭行に記述してください。他の行では効果がありません)
そうすれば、但し結果が得られます。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!