お薦め ページ


メニュー

ハワイ島 遊覧飛行ツアー

ハワイ島 B&B・ホテル

ハワイ島 不動産情報

ハワイ島 情報・観光ガイド

ブログ(Blog)

その他

関連サイト

: 個別エントリー・アーカイブ :

2007年5月 8日

ruby での「 Invalid char `\357' in expression 」エラーメッセージ

rubyのプログラムを実行してみて、
C:\soft\ruby>ruby URLencodeUTF8.rb
URLencodeUTF8.rb:1: Invalid char `\357' in expression
URLencodeUTF8.rb:1: Invalid char `\273' in expression
URLencodeUTF8.rb:1: Invalid char `\277' in expression
のようなエラーメッセージに遭遇することがあるかもしれない。

このエラーの原因は昨日のブログ 「UTF-8 と UTF-8N の違いは何か?」 でレポートした ユニコードの「バイトオーダーマーク (BOM:Byte Order Mark)」が原因である。 ちなみに 昨日のブログで
BOMの値は 具体的には上記の通り、「U+FEFF」である。 このBOMの値のUTF-8での表現は3バイトとなり 16進数の「 EF BB BF 」となる。 ちなみにこれを8進数で現すと「 357 273 277 」となる。
と書いたが、この「 357 273 277 」って rubyからのエラーメッセージの中にしっかり含まれている。

問題の原因がわかれば解決策は簡単である。 昨日のブログでも書いたが、 rubyのソース・ファイルを 例えば、「TeraPad」や「Xyzzy」のような UTF-8 と UTF-8N の両方に対応したエディターを使って開き、 改めて「UTF-8N」を指定して保存すること。

ちなみに、rubyを実行する際、 ユニコードを指定する「-Ku」オプションを付けた場合は、
C:\soft\ruby>ruby -Ku URLencodeUTF8.rb
URLencodeUTF8.rb:1: undefined method `・ソrequire' for main:Object (NoMethodError)
のようなエラーとなった。 結局「-Ku」オプションをつける場合でも、 ソースファイルは「UTF-8N」で保存する必要があるようだ。

【参考リンク】

カテゴリー: 文字コード・文字化け     2007年5月 8日 22:43

トラックバック

このエントリーのトラックバックURL:
http://www.skymerica.com/blog/yotsumoto/mt/mt-tb.cgi/793

このリストは、次のエントリーを参照しています: ruby での「 Invalid char `\357' in expression 」エラーメッセージ:

» [Ruby][エラー]Invalid char `¥357’ in expression from にてる・影響人開発者ブログ
結局は先日のと同じエラーなんだけど、記しておきます。 ファイル名.rb:1: Invalid char `¥357’ in expression ファイ... [続きを読む]

トラックバック時刻: 2009年9月20日 23:49

» moncler s from moncler s
ダウン 高級 [続きを読む]

トラックバック時刻: 2013年8月20日 01:26


コメント

コメントしてください




保存しますか?


 
ハワイ島での遊覧飛行ツアーとB&Bのスペシャリスト、スカイメリカ
Copyright © 2003,2009 Skymerica Corp. All rights reserved.