Ruby Tips!

RubyのTipsを紹介します

文字列のエンコーディングを確認する

Ruby 1.9では文字列がエンコーディングを持つようになった。ある文字列のエンコーディングを確認するにはString#encodingメソッドを使用する。返却値はEncodingオブジェクトである。

p "123abc".encoding #=> #<Encoding:UTF-8>

Encodingオブジェクトがどのようなエンコーディングを持つかはEncoding.listメソッドで一覧を取得できる。

p Encoding.list #=> [#<Encoding:ASCII-8BIT>, #<Encoding:UTF-8>, #<Encoding:US-ASCII>, #<Encoding:Big5>, #<Encoding:Big5-HKSCS>, #<Encoding:Big5-UAO>, #<Encoding:CP949>, #<Encoding:Emacs-Mule>, #<Encoding:EUC-JP>, #<Encoding:EUC-KR>, #<Encoding:EUC-TW>, #<Encoding:GB18030>, #<Encoding:GBK>, #<Encoding:ISO-8859-1>, #<Encoding:ISO-8859-2>, #<Encoding:ISO-8859-3>, #<Encoding:ISO-8859-4>, #<Encoding:ISO-8859-5>, #<Encoding:ISO-8859-6>, #<Encoding:ISO-8859-7>, #<Encoding:ISO-8859-8>, #<Encoding:ISO-8859-9>, #<Encoding:ISO-8859-10>, #<Encoding:ISO-8859-11>, #<Encoding:ISO-8859-13>, #<Encoding:ISO-8859-14>, #<Encoding:ISO-8859-15>, #<Encoding:ISO-8859-16>, #<Encoding:KOI8-R>, #<Encoding:KOI8-U>, #<Encoding:Shift_JIS>, #<Encoding:UTF-16BE>, #<Encoding:UTF-16LE>, #<Encoding:UTF-32BE>, #<Encoding:UTF-32LE>, #<Encoding:Windows-1251>, #<Encoding:IBM437>, #<Encoding:IBM737>, #<Encoding:IBM775>, #<Encoding:CP850>, #<Encoding:IBM852>, #<Encoding:CP852>, #<Encoding:IBM855>, #<Encoding:CP855>, #<Encoding:IBM857>, #<Encoding:IBM860>, #<Encoding:IBM861>, #<Encoding:IBM862>, #<Encoding:IBM863>, #<Encoding:IBM864>, #<Encoding:IBM865>, #<Encoding:IBM866>, #<Encoding:IBM869>, #<Encoding:Windows-1258>, #<Encoding:GB1988>, #<Encoding:macCentEuro>, #<Encoding:macCroatian>, #<Encoding:macCyrillic>, #<Encoding:macGreek>, #<Encoding:macIceland>, #<Encoding:macRoman>, #<Encoding:macRomania>, #<Encoding:macThai>, #<Encoding:macTurkish>, #<Encoding:macUkraine>, #<Encoding:CP950>, #<Encoding:CP951>, #<Encoding:stateless-ISO-2022-JP>, #<Encoding:eucJP-ms>, #<Encoding:CP51932>, #<Encoding:GB2312>, #<Encoding:GB12345>, #<Encoding:ISO-2022-JP (dummy)>, #<Encoding:ISO-2022-JP-2 (dummy)>, #<Encoding:CP50220 (dummy)>, #<Encoding:CP50221 (dummy)>, #<Encoding:Windows-1252>, #<Encoding:Windows-1250>, #<Encoding:Windows-1256>, #<Encoding:Windows-1253>, #<Encoding:Windows-1255>, #<Encoding:Windows-1254>, #<Encoding:TIS-620>, #<Encoding:Windows-874>, #<Encoding:Windows-1257>, #<Encoding:Windows-31J>, #<Encoding:MacJapanese>, #<Encoding:UTF-7 (dummy)>, #<Encoding:UTF8-MAC>, #<Encoding:UTF-16 (dummy)>, #<Encoding:UTF-32 (dummy)>, #<Encoding:UTF8-DoCoMo>, #<Encoding:SJIS-DoCoMo>, #<Encoding:UTF8-KDDI>, #<Encoding:SJIS-KDDI>, #<Encoding:ISO-2022-JP-KDDI (dummy)>, #<Encoding:stateless-ISO-2022-JP-KDDI>, #<Encoding:UTF8-SoftBank>, #<Encoding:SJIS-SoftBank>]