Windows 環境でコマンドプロンプトを使って日本語を表示させようとして躓いたのでメモ。ソースコードを UTF-8 で書きたい人を対象にしています。
まとめ
先にまとめを書いておきます。
ソースコード
以下のソースコードを使ってテストしてみます。ソースコードは encoding_test.rb として、UTF8 (BOM 無し) で保存しました。
# -*- encoding: utf-8 -*- # 外部エンコーディング p Encoding.default_external p $stdout.external_encoding # 内部エンコーディング p Encoding.default_internal p $stdout.internal_encoding str = "こんにちは世界" # 文字列のエンコーディング。ソースコードと同じになる。 p str.encoding # 文字列を表示 puts str
オプションなし
ruby encoding_test.rb
オプション -E を使う
- Eexternal_encoding と指定します。デフォルトの外部エンコーディングを指定するオプションです。
ruby -EWindows-31J encoding_test.rb
オプション -U を使う
ruby -U encoding_test.rb