• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:rubyのプログラム)

初心者によるrubyプログラムのエラー解説

このQ&Aのポイント
  • プログラミング初心者が参考書のソースコードを実行した際にエラーが出てしまいました。エラーが発生する原因を解説します。
  • エラー内容はinvalid multibyte charとsyntax errorです。これらのエラーが発生する理由と解決法をご紹介します。
  • Windows7の環境でrubyのバージョン1.92を使用していました。ソースコード中のエンコーディング指定と特殊文字の利用が問題の原因でした。

質問者が選んだベストアンサー

  • ベストアンサー
  • sholmes
  • ベストアンサー率81% (89/109)
回答No.1

文字コード絡みのトラブルだとは思うんですが、そういうエラーに繋がってしまう記述ではないと思います。 (日本語Win7と1.92で試しましたが、動きました。) 後は、スクリプトファイル自体の文字コードとマジックコメント(#encoding: cp932)に差異のある可能性が高そうです。 Win7であればメモ帳でも文字コード数種を判別できるので、まずは開いて「名前を付けて保存」を選んでみてください 開いた画面下部にある「文字コード(E)」にANSIが自動選択されていれば、本来は大丈夫な筈です。 もし違っていれば、ANSIに変更して保存しなおしてみてください。 <おまけ 1> ただ、特に深い理由が無いのであれば、文字コードにはUTF-8の選択が無難です。 この際は、マジックコメントも書きなおしてください 例) # -*- coding: utf-8 -*- <おまけ 2> エディタは何をお使いでしょうか? ソースコードの記述にメモ帳の利用はあまりに不便だと思うので、おすすめできません。 現在愛用中のものがあれば、是非そちらを利用して下さい もし無いということであれば、次のどちらかをおすすめします。 ・初期設定が特にいらない。メモ帳の上位互換イメージで利用可能  →サクラエディタ ・初期設定が若干面倒な代わりに、軽量なプログラミング環境として便利  →SciTE

bps1
質問者

お礼

エディッタにはSciTEを使用しております。 文字コードはcode page property になっており、よくわからなかったので、助言いただいた通りUTF-8を選択しマジックコメントを書き直したらプログラムが通りました。 本当にありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Ruby1.9.2でマジックコメントが反映されない

    基本的な質問になるのですが、 CentOS5.5でRuby1.9.2を利用しているのですが、スクリプト中に、マジックコメントを 入れているにも関わらず、「invalid multibyte char」エラーが返ってきます。 追加で設定する情報があるのでしょうか。 お手数お掛けしますが、ご存知の方がいらっしゃれば、ご教示ください。 # ruby -v ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-linux] # cat hello.rb # -*- encoding: utf-8 -*- puts 'こんにちは' # ruby -v hello.rb ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-linux] hello.rb:2: invalid multibyte char (UTF-8) hello.rb:2: invalid multibyte char (UTF-8) # ruby -Ks hello.rb hello.rb:2: invalid multibyte char (UTF-8) hello.rb:2: invalid multibyte char (UTF-8)

    • ベストアンサー
    • Ruby
  • REXMLについて教えてください2

    http://japan.internet.com/developer/20070703/27.htmlの doc.elements.each("guitars/make/model/color") { |element| puts element.text } を実行したら C:/DOCUME~1/.....: syntax error, unexpected '|', expecting '}' { |element| puts element.text } ^ C:/DOCUME~1/.......: syntax error, unexpected tIDENTIFIER, expecting kDO or '{' or '(' { |element| puts element.text } ^ C:/DOCUME~1/Hideyuki/LOCALS~1/Temp/rb22C.tmp:7: syntax error, unexpected '}', expecting $end Complete(1) とエラーが出ます。 サイトのプログラムそのままなのですが、何か勘違いしてますか? Rubyのバージョンとかが関係あるのでしょうか?

    • ベストアンサー
    • Ruby
  • プログラミング ruby について

    悩んだ挙句、尋ねる相手もいないため、質問させてください。 テキストエディタに "puts 1+2" として、「calc.rb」と名前をつけて保存。その後コマンド プロンプトで"ruby calc.rb"で実行とすると、"3"と出力するはずのところ、"ruby: No such file or directory -- calc.rb (LoadEroor)"とでます。 何が原因でしょうか? ちなみに、テキストエディタとして、メモ帳 or SciTEを使用。 また、"ruby -v"の実行は、うまく表示されました

    • ベストアンサー
    • Ruby
  • Sinatra syntax error

    あるコードの一部なんですがエラーが出てしまいます。 どのように解決すればいいでしょうか よろしくお願いします。 a.rb:5: syntax error, unexpected ',', expecting tASSOC @defeat = {rock::scissors, paper::rock, scissors::paper} ^ a.rb:5: syntax error, unexpected '}', expecting '='

    • ベストアンサー
    • Ruby
  • エラー文の意味

    エラー文の意味 ご質問させていただきます。 Macからターミナルを使ってRubyを動かしているのですが、変数を含んだファイルを実行しようとすると、エラーが出てしまいます。 例えば、 a = 3 print "私はリンゴを", a, "個持っています。" というファイルをapple.rbという名前で保存し、ターミナルから ruby apple.rb で実行すると、以下のようなエラー文が出ます。 apple.rb:1: syntax error, unexpected tIDENTIFIER, expecting $end このエラーはどういう意味なのでしょうか? よろしくお願いします。

  • rubyのmygameライブラリが動かない!!

    rubyのmygameライブラリがうまく動作しません。 mygame使っている方に教えていただけると幸いです。 実行環境 OS:windos vista rubyバージョン:Active script ruby1.8.5.2 rubyのmygameライブラリ(SDL同梱)をダウンロードしました。 インストーラがうまく動作しなかったので手動でやりました。 確認のコマンド(ruby -r mygame/boot -e "")では、うまく動作しました。 しかし、いざソースファイルを書いて実行してみると次のようなエラーメッセージが 出てきて実行できません。 hello.rb:1: Invalid char `\377' in expression hello.rb:1 Invalid char `\376' in expression ちなみに、ソースコードは require 'mygame/boot' Font.render 'Hello World'

  • エラー2401.rb:5: syntax erro

    エラー2401.rb:5: syntax error, unexpected '<', expecting end-of-input <% require 'date' % >の原因がわかりません 2401.rbというプログラムを作成し、実行を致しました。 ---------------------------- # coding: utf-8 require'erb' <% require 'date' % > <h1>ERB Test Page.</h1> <p>今日の日付は: <%= Date.today %></p> ---------------------------- ターミナルで実行したのですが、 下記のエラーが発生しました。 2401.rb:5: syntax error, unexpected '<', expecting end-of-input <% require 'date' % > 何度見なおしても原因がわからなく困っております。 このエラーは何を指しているのかわかりますでしょうか? 宜しくお願いします。 必要な情報は都度教えて頂ければ、追記します。 尚、macで開発しております。 RubyのERBの使用方法を学ぶべく勉強しております。

  • engawa.rb:17: syntax error, unexpec

    engawa.rb:17: syntax error, unexpected tGVAR, expecting $end str1 = "縁側でお茶が飲みたい" と文字列に日本語を代入しただけでエラーが出るのですが、これはなぜなんでしょうか? よろしくお願いいたします。 環境のせいかもしれませんので書いておきます。 Linux,UTF-8,Ruby1.8です。

    • ベストアンサー
    • Ruby
  • Rubyプログラムヘッダ部分の書き方

    度々すみませんが、他人のRubyプログラムを試しながら勉強しているのです。 今回の質問はプログラムの先頭の書き方です。ご存知の方にご教示を頂きたいのです。 ついでに、こちらの動作環境はLinux-Mint、Ruby1.9.3です。 次のはサンプルプログラムの先頭の5行です。  1 #!/usr/bin/env ruby  2 # -*- mode:ruby; coding:utf-8 -*-  3 require 'kconv'  4 require 'moji'  5 Encoding.default_external = "utf-8" 質問1: 2行目は処理する文字コードがUTF-8の指定に見えます。どんな場合に必要ですか。 実はあるプログラムをUTF-8のデータを処理するときに、2行目があると invalid multibyte char (UTF-8) のエラーが出ました。抜いたら正常処理します。 質問2: 3、4行目は、日本語処理のクラスを利用するためのライブラリ指定ですが、 使い分けがよく分からないのです。 質問3: 5行目はどんな場合に必要でしょうか。2行目と同じような役割に見えますが.... 初歩的な質問ばかりですが、どうぞよろしくお願いいたします。

    • ベストアンサー
    • Ruby
  • macでのhomebrewのインストールについて

    MacOSX10.8.5にてhomebrewをインストールしたいです。 調べたところ ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)" とターミナル上でコマンドを打てばインストール可能とのことでしたので、実行してみました。 ところが、 $ ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)" -e:4: syntax error, unexpected '<' <!DOCTYPE html> ^ -e:5: syntax error, unexpected '<' <html> ^ -e:7: syntax error, unexpected '<' <meta charset='utf-8'> ^ -e:8: syntax error, unexpected '<' <meta http-equiv="X-UA-Compatible" content="IE=edge"> ^ -e:8: syntax error, unexpected tIDENTIFIER, expecting $end <meta http-equiv="X-UA-Compatible" content="IE=edge"> というエラーが生じてしまいました。 どなたか解決方法をご存知でしたら、教えてください。 よろしくお願いします。