• ベストアンサー

engawa.rb:17: syntax error, unexpec

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

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

  • ベストアンサー
  • t-okura
  • ベストアンサー率75% (253/335)
回答No.1

ubuntu 9.10, locale ja_JP.UTF-8 ですが、 下記のように問題なく動作します。 $ cat engawa.rb str1 = "縁側でお茶が飲みたい" puts str1 $ ruby --version ruby 1.8.7 (2009-06-12 patchlevel 174) [i486-linux] $ ruby engawa.rb 縁側でお茶が飲みたい 他の部分に文法エラーがあるのではないでしょうか。

LLR4
質問者

お礼

お騒がせるしました。split(//u)のuを指定していなかったせいらしいです。 uを付けたらちゃんと表示されました。ありがとうございました。

その他の回答 (2)

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.3

#2 です。 unexpected tGVAR というエラーなので、スクリプトがJISコード(ISO-2022-JP)で書かれてしまっているのではないでしょうか。 nkf --guess ファイル名 で、文字コードを調べられます。

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

他の部分に問題がないとすると、その文字列がUTF-8で書かれているのに、rubyの起動時オプションで、-Ku 以外が指定されているのでしょう。-Ks とか。 環境変数 RUBYOPT で指定しているのかも。

関連するQ&A