2012/05/17

Rails の models クラスに日本語を記述するとエラーになる


ruby 1.9.2 + Rails 3.1.0 環境で models クラスに日本語を記述すると、以下のようなエラーが発生してしまいます。

SyntaxError (/home/xxx/work/depot/app/models/product.rb:7: invalid multibyte char (US-ASCII)
/home/xxx/work/depot/app/models/product.rb:7: invalid multibyte char (US-ASCII)
/home/xxx/work/depot/app/models/product.rb:7: syntax error, unexpected $end, expecting '}'
    message: 'あ'
                ^):
  app/controllers/products_controller.rb:1:in `<top (required)>'

エラーメッセージを見ると、product.rb が US-ASCII で解釈されているために日本語が正しく処理できていないようです。

どうも、Ruby 1.9 から日本語を扱う場合は、ファイル1行目に以下のエンコード指定を記述する必要がある模様(参考サイト)。

# -*- encoding: UTF-8 –*-

試しに product.rb の1行目に上記の指定を追加したところエラーは発生しなくなりました。

しかし不便ですね。もっとスマートな方法があってもよいと思うのですが。

 

・2012/05/28追記

以下の記述でもいいみたい。

# encoding: UTF-8


スポンサーリンク


このエントリーをはてなブックマークに追加




Twitter ではブログにはない、いろんな情報を発信しています。


コメント

コメントを書く



プロフィール

  • 名前:fnya
    経歴:
    SE としての経験は15年以上。様々な言語と環境で業務系システム開発を行い、セキュリティ対策などもしていました。現在は趣味SE。

    Twitter では、ブログでは取り上げない情報も公開しています。


    ブログについて

    このブログは、IT、スマートフォン、タブレット、システム開発などに関するさまざまな話題を取り上げたり、雑感などをつづっています。

    >>ブログ詳細
    >>自作ツール
    >>運営サイト
    >>Windows 10 まとめ

    Twitter のフォローはこちらから Facebook ページはこちら Google+ページはこちら RSSフィードのご登録はこちらから