民芸的プログラミング 〜ソフトウェア開発日記〜

アクセスカウンタ

zoom RSS groovy のソースの文字コードの疑問

<<   作成日時 : 2009/08/07 07:37   >>

ブログ気持玉 0 / トラックバック 0 / コメント 2

昨日、試行錯誤の結果、とりあえず、groovy -c UTF-8 で日本語を含む正規表現もうまく動作することを確認した。
なので、個人的には、ソースは UTF-8 で書けばいいと思っている。

しかし、ここで新たな疑問が。

groovy は -c オプションを使用しない場合、どうやってソースの文字コードを判別しているのだろうか?
JAVA なら、javac.exe が Windows 用なら Windows 用となっていて、プラットフォーム依存なので、javac.exe あたりで文字コードのデフォルトが SJIS(正確にはMS932) になっていたりするのだろうと想像される。

ところが、groovy はそのようなプラットフォーム依存の配布形態にはなっていない。
Windows 用だろうが、Linux 用だろうが、同じ zip ファイルをダウンロードしてくるだけだ。
groovy のインタプリタ自体も JAVA アプリケーションになっている。
なので、文字コードのデフォルトが、何らかのプラットフォームに依存するようなものになっているとは考えにくい。
「Windows だからデフォルトは SJIS で」というような、javac.exe のような気の利いた(あるいは余計なおせっかいのような)ことをやろうにも、そもそも groovy にとっては OS が何であるか関係ないのだ。

最初に何も考えずに SJIS で書いた正規表現がうまく動作したのはなぜ?
UTF-8 を使うときに -c UTF-8 と明示しなければならないのはなぜ?

疑問は疑問なのだが、今の自分にはこれ以上深く追究する余裕はない。
不安なら -c UTF-8 と明示する。今はそれだけだ。

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(2件)

内 容 ニックネーム/日時
コマンドで以下のコマンドを実行すると、

$ groovy -e "println System.properties.'file.encoding'"
> MS932

となりました。
このあたりがみそのようです。
genzou
2009/08/07 09:07
なるほど。genzou さん、ありがとうございます。
ものすごく勉強になりました。
恥を覚悟でブログを書き続けていてよかった。

これでものすごく安心して groovy スクリプトを書くことができます。
kazuyoshikakihara
2009/08/07 09:40

コメントする help

ニックネーム
本 文
groovy のソースの文字コードの疑問 民芸的プログラミング 〜ソフトウェア開発日記〜/BIGLOBEウェブリブログ
文字サイズ:       閉じる