• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:encode指定の表記について(Ruby 1.9))

Ruby 1.9でのencode指定の表記について

このQ&Aのポイント
  • Rubyでのデータ処理用に1.9系への移行を考えています。ソースコードの最初に書く文字コードの指定について、参照すべき表記一覧がわからないです。
  • Windows環境での使用を考えているため、シフトJISコードの場合が多いですが、どの表記が正しいかわかりません。
  • Ruby 1.9でのencode指定の表記について教えてください。

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

  • ベストアンサー
  • koko_u_u
  • ベストアンサー率18% (216/1139)
回答No.1

>この"utf-8"の部分に書く文字コードの表記一覧(?)はどちらを参照すればよろしいのでしょうか? ruby -e "puts Encoding.name_list" >書き方として"SHIFT-JIS"、"Shift-JIS"、"SJIS"等のうち、どの表記が正解なのか判りません。 ruby -e "puts Encoding.default_external" かな? 実はよくわからん。SJIS だとうまく行かなかったので、Windows-31J にしてみたりしてる。

siffon9
質問者

お礼

ご回答ありがとうございました。 自宅のPCに ruby 1.9.1p376 (2009-12-07 revision 26041) [i386-mswin32] をインストールしてみて、 教えていただいたコマンドを確認いたしました。 他のコードを扱うときに、また悩むと思いますのでこのコマンドを一緒にコメントに書いておきたいと思います。

その他の回答 (2)

回答No.3

例のエンコーディングのIANAへの登録名は"Shift_JIS"です。RubyとしてはEncoding::Shift_JIS.namesのどれでも良いので、"SJIS"も受け付けます。"Shift-JIS"というエンコーディング名はないので受け付けません。なお、大文字と小文字はこの場合は区別しません。 ちなみに、Windowsで一般にShift_JISと呼ばれているエンコーディングはShift_JISではなくCP932です。ですから、"Windows-31J", "CP932", "csWindows31J"のいずれかを書くと良いのではないでしょうか。

siffon9
質問者

お礼

ご回答ありがとうございました。 回答を拝見して、マニュアルをのEncordingクラスをみましたところ、定数に一覧があるのを発見しました。マニュアルが見られる場合は、こちらを参照するようにしたいと思います。 > Windowsで一般にShift_JISと呼ばれているエンコーディングはShift_JISではなく CP932です。 これも知りませんでした、教えていただきありがとうございました。

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

ドキュメントには無いんじゃないかなあ。yuguiさんが回答してくれるか? もともとこのコメントは、emacsやvi等のエディタに対して、「このファイルはこれこれの文字コードで書かれているよ」という指示の行(vi用はすこし書式が違います)なので、「emacsやviが受け付ける名前」ということになると思います。 どれが受け付けられてどれが受け付けられないかはやってみればわかるので良いですよね。 どれが正式か?という意味では、(メールやウェブで使われている)MIME規格でのシフトJISの名前は、質問中のどれでもなく、Shift_JIS です。 あるいは、細かいところを気にすると、Windowsの拡張されたシフトJISコードという意味で、cp932 と書くのが良いのかも。簡単に言うと cp932 = Shift_JIS + 丸数字などのWindows独自文字 です。 あと、 # -*- coding: Shift_JIS -*- というのは、emacs用なので、Windowsでエディタで書くなら # coding: Shift_JIS で十分です。

siffon9
質問者

お礼

ご回答ありがとうございました。 > ドキュメントには無いんじゃないかなあ。 やはりですか。 検索もしてみたのですが、こういうコメントを入れるという記述はあちこちにあったのですが、具体的にどう書けば良いかという記述がみつからず質問した次第です。 > どれが受け付けられてどれが受け付けられないかはやってみればわかるので良いですよね。 確かに仰るとおりなのですが、少なくとも自分の場合には"Shift_JIS"というアンダースコアを使用した表記を思いつくのには、それなりの時間がかかったと思います。 私と同じようなライトユーザーで、戸惑う方は多いのではないでしょうか? > Windowsでエディタで書くなら > # coding: Shift_JIS > で十分です。 これも知りませんでした、勉強になります。

関連するQ&A