Ruby 1.9.2 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Encodingクラス
class Encoding
クラスの継承リスト: Encoding < Object < Kernel < BasicObject
Abstract
文字エンコーディング(文字符号化方式)のクラスです。Rubyの多言語対応(M17N)機能において利用されます。
例えば文字列オブジェクトは、文字列のバイト表現の他にそのバイト表現がどのエンコーディングによるものであるかも併せて保持しています。この情報は String#encoding により取得できます。 Encoding オブジェクトを返すメソッドにはこの他に IO#internal_encoding, IO#external_encoding などがあります。
@see 多言語化
特異メソッド
aliases -> Hash-
エンコーディングの別名に対して元の名前を対応づけるハッシュを返します。
例:
p Encoding.aliases #=> {"BINARY"=>"ASCII-8BIT", "ASCII"=>"US-ASCII", "ANSI_X3.4-1986"=>"US-ASCII", "SJIS"=>"Shift_JIS", "eucJP"=>"EUC-JP", "CP932"=>"Windows-31J"} compatible?(str1, str2) -> Encoding | nilcompatible?(enc1, enc2) -> Encoding | nil-
2つの文字列に互換性があるかどうかをチェックします。互換性がある文字列は 結合させることができます。互換性があるときは、結合後の文字列が取るであ ろう Encoding オブジェクトを返します。互換性がない場合は nil を返します。
- [PARAM] str1:
- チェックする対象の文字列を指定します。
- [PARAM] str2:
- チェックする対象の文字列を指定します。
- [RETURN]
- 結合した場合の文字列の Encoding または nil
default_external -> Encoding-
規定の外部エンコーディングを返します。
入出力において、外部エンコーディングが指定されていない場合の規定値として利用されます。Rubyはロケールまたは -E オプションに従って default_external を決定します。ロケールの確認・設定方法については各システムのマニュアルを参照してください。
default_external は必ず設定されます。Encoding.locale_charmap が nil を返す場合には US-ASCII が、 ロケールにRubyが扱えないエンコーディングが指定されている場合には ASCII-8BIT が、default_external に設定されます。
[SEE_ALSO] locale(1), Encoding.locale_charmap
default_external=(encoding) -> Encoding-
規定の外部エンコーディングを設定します。
default_internal -> Encoding | nil-
規定の内部エンコーディングを返します。
default_internal=(encoding) -> Encoding-
規定の内部エンコーディングを設定します。
find(name) -> Encoding-
指定された name という名前を持つ Encoding オブジェクトを返します。
- [PARAM] name:
- エンコーディング名を表す String か Symbol を指定します。
- [RETURN]
- 発見された Encoding オブジェクトを返します。
- [EXCEPTION] ArgumentError:
- 指定した名前のエンコーディングが発見できないと発生します。
特殊なエンコーディング名として、ロケールエンコーディングを表す locale、default_external を表す external、default_internal を表す internal があります。
例:
p Encoding.find(:Shift_JIS) #=> #<Encoding:Shift_JIS> p Encoding.find("utf-8") #=> #<Encoding:UTF-8> list -> [Encoding]-
現在ロードされているエンコーディングのリストを返します。
例:
Encoding.list => [#<Encoding:ASCII-8BIT>, #<Encoding:EUC-JP>, #<Encoding:Shift_JIS>, #<Encoding:UTF-8>, #<Encoding:ISO-2022-JP (dummy)>] Encoding.find("US-ASCII") => #<Encoding:US-ASCII> Encoding.list => [#<Encoding:ASCII-8BIT>, #<Encoding:EUC-JP>, #<Encoding:Shift_JIS>, #<Encoding:UTF-8>, #<Encoding:US-ASCII>, #<Encoding:ISO-2022-JP (dummy)>] locale_charmap -> String | nil-
ロケールエンコーディングを決定するために用いる、locale charmap 名を返します。nl_langinfo 等がない環境では nil を、miniruby では ASCII_8BIT を返します。
Debian GNU/Linux LANG=C Encoding.locale_charmap => "ANSI_X3.4-1968" LANG=ja_JP.EUC-JP Encoding.locale_charmap => "EUC-JP" SunOS 5 LANG=C Encoding.locale_charmap => "646" LANG=ja Encoding.locale_charmap => "eucJP"[SEE_ALSO] charmap(5)
name_list -> [String]-
利用可能なエンコーディングの名前を文字列の配列で返します。
このリストにはダミーエンコーディングは含みません。
例:
p Encoding.name_list #=> ["US-ASCII", "ASCII-8BIT", "UTF-8", "ISO-8859-1", "Shift_JIS", "EUC-JP", "Windows-31J", "BINARY", "CP932", "eucJP"]
インスタンスメソッド
dummy? -> bool-
自身がダミーエンコーディングである場合に true を返します。 そうでない場合に false を返します。
ダミーエンコーディングとは Ruby が名前を知っているものの実質的には対応していないエンコーディングのことです。例えば、ダミーエンコーディングで符号化された文字列の場合、 String#length はマルチバイト文字を考慮せずにバイト列の長さを返します。
ダミーエンコーディングも IO の外部エンコーディングに指定できます。また Ruby はサポートしていないが拡張ライブラリがサポートしているエンコーディングを扱う場合にも 用います。
例:
Encoding::ISO_2022_JP.dummy? #=> true Encoding::UTF_8.dummy? #=> false
inspect -> String-
プログラマにわかりやすい表現の文字列を返します。
例:
Encoding::UTF_8.inspect #=> "#<Encoding:UTF-8>" Encoding::ISO_2022_JP.inspect #=> "#<Encoding:ISO-2022-JP (dummy)>"
name -> Stringto_s -> String-
エンコーディングの名前を返します。
Encoding::UTF_8.name => "UTF-8"
names -> String-
エンコーディングの名前とエイリアス名の配列を返します。
Encoding::UTF_8.names => ["UTF-8", "CP65001"]
定数
US_ASCIIASCIIANSI_X3_4_1968-
ASCII文字のみのエンコーディングです。通常の ASCII 文字の範囲外のバイト (たとえば\x80など)が含まれる場合は正しいエンコーディングであるとみなし ません。
ASCII_8BITBINARY-
変換を行わないエンコーディングオブジェクトです。
文字エンコーディングを持たないデータ、文字を符号化したのではない単なるバイトの列を表現するためにも用います。
Big5BIG5CP950Windows_1250CP1250WINDOWS_1250Windows_1251CP1251WINDOWS_1251Windows_1252CP1252WINDOWS_1252Windows_1253CP1253WINDOWS_1253Windows_1254CP1254WINDOWS_1254Windows_1255CP1255WINDOWS_1255Windows_1256CP1256WINDOWS_1256Windows_1257CP1257WINDOWS_1257Windows_1258CP1258WINDOWS_1258IBM437CP437CP51932IBM737CP737IBM775CP775CP850IBM850CP852CP855IBM857CP857IBM860CP860IBM861CP861IBM862CP862IBM863CP863IBM864CP864IBM865CP865IBM866CP866IBM869CP869Windows_874CP874WINDOWS_874Windows_31JCP932CSWINDOWS31JCsWindows31JWINDOWS_31JCP936CP949EUCCNEucCNEUC_JPEUC_JP_MSEucJPEUCJP-
EUC-JP エンコーディングです。
EucJP_msEUCJP_MSEUC_KREUCKREucKREUC_TWEUCTWEucTWGB18030GB1988GBKWINDOWS_936Windows_936IBM852IBM855ISO_2022_JPISO2022_JP-
ISO-2022-JP エンコーディングです。
ISO_2022_JP_2ISO2022_JP2ISO_8859_1ISO8859_1-
ISO-8859-1 エンコーディングです。
ISO_8859_10ISO8859_10ISO_8859_11ISO8859_11ISO_8859_13ISO8859_13ISO_8859_14ISO8859_14ISO_8859_15ISO8859_15ISO_8859_16ISO8859_16ISO_8859_2ISO8859_2ISO_8859_3ISO8859_3ISO_8859_4ISO8859_4ISO_8859_5ISO8859_5ISO_8859_6ISO8859_6ISO_8859_7ISO8859_7ISO_8859_8ISO8859_8ISO_8859_9ISO8859_9KOI8_RKOI8_UMacCentEuroMACCENTEUROMacCroatianMACCROATIANMacCyrillicMACCYRILLICMacGreekMACGREEKMacIcelandMACICELANDMacJapaneseMACJAPANMACJAPANESEMacJapanMacRomanMACROMANMacRomaniaMACROMANIAMacThaiMACTHAIMacTurkishMACTURKISHMacUkraineMACUKRAINESHIFT_JISShift_JISSJIS-
Shift_JIS エンコーディングです。
TIS_620UTF_16BE-
UTF-16BE (ビッグエンディアン)エンコーディングです。
UTF_16LE-
UTF-16LE (リトルエンディアン)エンコーディングです。
UTF_32BE-
UTF-32BE (ビッグエンディアン)エンコーディングです。
UTF_32LE-
UTF-32LE (リトルエンディアン)エンコーディングです。
UTF_8-
UTF-8 エンコーディングです。