&tag(Ruby1.9);
*目次 [#t3e9702d]
#contents
*参考情報 [#l3eeaa44]
-[[Ruby]]


*文字コードまわり [#jde6e12d]
大幅に変更されているのではまりやすい。

**参考情報 [#nde6747b]
-[[Ruby 1.9.1のm17nについてメモ - daily gimite:http://d.hatena.ne.jp/Gimite/20080101/1199199332]]

**スクリプトの文字コードを指定する [#be4eb570]
-スクリプトの文字コードがファイル中の文字列リテラルのencodingとなる。
-ファイルの先頭で文字コードを指定できる
 # -*- encoding: UTF-8 -*-
 p "あ".encoding => #<Encoding:UTF-8>
-何も書かないとUS-ASCIIなのでエラーになる
 p "あ".encoding => invalid multibyte char (US-ASCII)

**文字コードを変換する [#z862ba0f]
-encode("文字コード")で変換できる。非破壊メソッド。
 p "あ".encode("EUC-JP")

**文字コードの解釈を変更する [#qbf628f8]
-force_encoding("文字コード")でバイト列は変更せず解釈を変更する。例えばUTF-8のファイルをencodingを指定せず読み込んだ後に、force_encoding("UTF-8")してから後の処理を行うなど。破壊メソッド。
 p str.force_encoding("UTF-8") #=> "あ"
*Macでインストール [#v6a7213e]
**make testでこける。 [#wbd307b1]
-[[ruby-trunk - Bug #5122: make test fails on OS X 10.7 (11A511) - Ruby Issue Tracking System:http://redmine.ruby-lang.org/issues/5122]]が参考になる?


*Tips [#m1a9d348]
**Windowsで文字化けを防ぐ [#hfe6b810]
-例えばUTF-8でスクリプトを書いてそのままprintすると文字化けする。
-set_encodingして出力時エンコードを変更(internal_encodingも変更しないとだめかも)。
#{{
#pre{{
STDOUT.set_encoding( Encoding.locale_charmap )
STDERR.set_encoding( Encoding.locale_charmap )
}}


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS