Ruby 1.8.7 リファレンスマニュアル > ライブラリ一覧 > iconvライブラリ > Iconvクラス

class Iconv

クラスの継承リスト: Iconv < Data < Object < Kernel

要約

iconv 関数のラッパークラスです。

特異メソッド

charset_map -> {String => String}

文字コードセット名からシステム依存の文字コードセット名への Hash を返します。

conv(to, from, str) -> String

与えられた文字コードにしたがって str を変換し、結果を文字列として返します。

次の省略形です。

Iconv.iconv(to, from, str).join
[PARAM] to:
変換先の文字コード体系を表す文字列を指定します。
[PARAM] from:
変換前の文字コード体系を表す文字列を指定します。
[PARAM] str:
変換したい文字列を指定します。

このメソッドは Iconv.new, Iconv.open および Iconv#iconv の例外 を起こします。

iconv(to, from, *strs) -> [String]

与えられた文字コードにしたがって strs を変換し、結果を文字列の配列として返します。

次の省略形です。

Iconv.open(to, from) {|cd| (strs + [nil]).collect {|s| cd.iconv(s)}}
[PARAM] to:
変換先の文字コード体系を表す文字列を指定します。
[PARAM] from:
変換前の文字コード体系を表す文字列を指定します。
[PARAM] strs:
変換したい文字列を指定します。

このメソッドは Iconv.new, Iconv.open および Iconv#iconv の例外 を起こします。

new(to, from) -> Iconv

文字コード from から to へ変換するIconvオブジェクトを生成します。

[PARAM] to:
変換先の文字コード体系を表す文字列を指定します。
[PARAM] from:
変換前の文字コード体系を表す文字列を指定します。
[EXCEPTION] TypeError:
to や from が String オブジェクトでないとき発生します。
[EXCEPTION] Iconv::InvalidEncoding:
to や from で指定された文字コード体系が見つからないとき発生します。
[EXCEPTION] SystemCallError:
iconv_open(3) が失敗したとき発生します。

例:

require 'iconv'
# EUC-JP から SHIFT_JIS へ変換するIconvオブジェクトを生成。
icv = Iconv.new('SHIFT_JIS', 'EUC-JP')

[SEE_ALSO] Iconv.open

open(to, from) -> Iconv
open(to, from) {|cd| ...} -> object

ブロックが与えられない場合は Iconv.new と等価です。 ブロックが与えられると、Iconv オブジェクトを生成し、それを引数としてブロックを実行します。 ブロックの終りに Iconv オブジェクトは close されます。 ブロックの値を返します。

[PARAM] to:
変換先の文字コード体系を表す文字列を指定します。
[PARAM] from:
変換前の文字コード体系を表す文字列を指定します。
[EXCEPTION] TypeError:
to や from が String オブジェクトでないとき発生します。
[EXCEPTION] Iconv::InvalidEncoding:
to や from で指定された文字コード体系が見つからないとき発生します。

例:

euc = ["a4a2a4a4a4a6a4a8a4aa"].pack("H*") # あいうえおのEUC-JPコード

Iconv.open("UTF-8", "EUC-JP") do |i|
  str = i.iconv(euc)
  str << i.iconv(nil)
end
puts str #=> あいうえお

[SEE_ALSO] Iconv.new

インスタンスメソッド

close -> String

変換を終了します。出力バッファを初期シフト状態に戻すための文字列を返します。 出力の文字符号化方式が内部状態をも持たない場合、空文字列を返します。

このメソッドが呼ばれたあとで Iconv#iconv が呼ばれると例外が 起きますが、close 自体は繰返し呼ばれても成功します。

例:

i = Iconv.open("ISO-2022-JP", "EUC-JP")
i.iconv("\264\301")     #=> "\e$B4A"
i.iconv("\273\372")     #=> ";z"
i.close                 #=> "\e(B"
iconv(str, start = 0, length = -1) -> String

文字列の変換を開始し、変換後の文字列を返します。 str が文字列の場合、str[start, length] を変換し、 変換後の文字列を返します。

str が nil の場合、変換器をその初期シフト状態にし、 出力バッファを初期シフト状態に戻すためのバイト列からなる文字列を返します。 出力の文字符号化方式が内部状態をも持たない場合、空文字列を返します。

[PARAM] str:
変換される文字列または nil を指定します。
[PARAM] start:
str のうち変換を開始するオフセットを指定します。
[PARAM] length:
str のうち変換する長さを指定します。nil か -1 のときは、start 以降全部を意味します。
[EXCEPTION] Iconv::IllegalSequence:
strに指定された文字列に入力に指示された文字コードに含まれないために変換が停止した場合に発生します。
[EXCEPTION] Iconv::InvalidCharacter:
入力の最後が不完全な文字かシフトで終っているために変換が停止した場合に発生します。
[EXCEPTION] Iconv::OutOfRange:
ライブラリの内部エラーが発生した場合に発生します。
class Iconv