文字コードエンコーディングを変換するためのモジュール。 Kconv は nkf のラッパーです。
guess(str) -> Encoding | nil
[permalink][rdoc]文字列 str のエンコーディングを判定します。戻り値は Kconv の定数です。
このモジュール関数で判定できるのは、
のいずれかです。
iseuc(str) -> bool
[permalink][rdoc]文字列 str が EUC-JP なバイト列として正当であるかどうかを判定します。
[SEE_ALSO] String#iseuc
isjis(str) -> bool
[permalink][rdoc]文字列 str が ISO-2022-JP なバイト列として正当であるかどうかを判定します。
[SEE_ALSO] String#isjis
例:
require 'kconv' euc_str = "\ \xa5\xaa\xa5\xd6\xa5\xb8\xa5\xa7\xa5\xaf\xa5\xc8\xbb\xd8\xb8\xfe\ \xa5\xd7\xa5\xed\xa5\xb0\xa5\xe9\xa5\xdf\xa5\xf3\xa5\xb0\xb8\xc0\xb8\xec\ \x52\x75\x62\x79".force_encoding('EUC-JP') jis_str = "\ \x1b\x24\x42\x25\x2a\x25\x56\x25\x38\x25\x27\x25\x2f\x25\x48\x3b\x58\x38\x7e\ \x25\x57\x25\x6d\x25\x30\x25\x69\x25\x5f\x25\x73\x25\x30\x38\x40\x38\x6c\x1b\x28\x42\ \x52\x75\x62\x79".force_encoding('ISO-2022-JP') euc_str.isjis # => false jis_str.isjis # => true
issjis(str) -> bool
[permalink][rdoc]文字列 str が Shift_JIS なバイト列として正当であるかどうかを判定します。
[SEE_ALSO] String#issjis
isutf8(str) -> bool
[permalink][rdoc]文字列 str が UTF-8 なバイト列として正当であるかどうかを判定します。
[SEE_ALSO] String#isutf8
kconv(str, out_code, in_code = Kconv::AUTO) -> String
[permalink][rdoc]文字列 str のエンコーディングを out_code に変換したものを返します。in_code も指定されていたら str のエンコーディングが in_code だとして動作します。
このメソッドはMIME エンコードされた文字列を展開し、いわゆる半角カナを全角に変換します。これらを変換したくない場合は、 NKF.#nkf を使ってください。
[SEE_ALSO] String#kconv
toeuc(str) -> String
[permalink][rdoc]文字列 str のエンコーディングを EUC-JP に変換して返します。
Kconv.kconv(str, Kconv::EUC)と同じです。
このメソッドは MIME エンコードされた文字列を展開し、いわゆる半角カナを全角に変換します。これらを変換したくない場合は、 NKF.#nkf('-exm0', str) を使ってください。
[SEE_ALSO] Kconv.#kconv, String#toeuc
tojis(str) -> String
[permalink][rdoc]文字列 str のエンコーディングを iso-2022-jp に変換して返します。
Kconv.kconv(str, Kconv::JIS) と同じです。
このメソッドは MIME エンコードされた文字列を展開し、いわゆる半角カナを全角に変換します。これらを変換したくない場合は、 NKF.#nkf('-jxm0', str) を使ってください。
[SEE_ALSO] Kconv.#kconv, String#tojis
tolocale(str) -> String
[permalink][rdoc]文字列 str のエンコーディングをロケールエンコーディングに変換して返します。
ロケールエンコーディングについては Encoding.locale_charmap を見てください。
このメソッドは MIME エンコードされた文字列を展開し、いわゆる半角カナを全角に変換します。これらを変換したくない場合は、 String#encode を使ってください。
Kconv.kconv(str, Encoding.locale_charmap)と同じです。
[SEE_ALSO] String#tolocale
tosjis(str) -> String
[permalink][rdoc]文字列 str のエンコーディングを shift_jis に変換して返します。
このメソッドは MIME エンコードされた文字列を展開し、いわゆる半角カナを全角に変換します。これらを変換したくない場合は、 NKF.#nkf('-sxm0', str) を使ってください。
Kconv.kconv(str, Kconv::SJIS)と同じです。
[SEE_ALSO] Kconv.#kconv, String#tosjis
toutf16(str) -> String
[permalink][rdoc]文字列 str のエンコーディングを UTF-16BE に変換して返します。
このメソッドは MIME エンコードされた文字列を展開し、いわゆる半角カナを全角に変換します。これらを変換したくない場合は、 NKF.#nkf('-w16xm0', str) を使ってください。
Kconv.kconv(str, Kconv::UTF16)と同じです。
[SEE_ALSO] String#toutf16
toutf32(str) -> String
[permalink][rdoc]文字列 str のエンコーディングを UTF-32 に変換して返します。
このメソッドは MIME エンコードされた文字列を展開し、いわゆる半角カナを全角に変換します。これらを変換したくない場合は、 NKF.#nkf('-w32xm0', str) を使ってください。
Kconv.kconv(str, Kconv::UTF32)と同じです。
[SEE_ALSO] String#toutf32
toutf8(str) -> String
[permalink][rdoc]文字列 str のエンコーディングを UTF-8 に変換して返します。
このメソッドは MIME エンコードされた文字列を展開し、いわゆる半角カナを全角に変換します。これらを変換したくない場合は、 NKF.#nkf('-wxm0', str) を使ってください。
Kconv.kconv(str, Kconv::UTF8)と同じです。
[SEE_ALSO] String#toutf8
ASCII -> Encoding
[permalink][rdoc]ASCII を表します。
AUTO -> nil
[permalink][rdoc]エンコーディングを自動検出します。入力の指定でのみ有効です。
BINARY -> Encoding
[permalink][rdoc]JIS EUC SJIS 以外を表します。この値はKconv.#guessの返り値としてのみ用いられます。
EUC -> Encoding
[permalink][rdoc]EUC-JP を表します。
JIS -> Encoding
[permalink][rdoc]ISO-2022-JP を表します。
NOCONV -> nil
[permalink][rdoc]変換されないことを表します。出力エンコーディングの指定にのみ用います。
SJIS -> Encoding
[permalink][rdoc]Shift_JIS を表します。 cp932ではないことに注意してください。
UNKNOWN -> nil
[permalink][rdoc]出力においては「エンコーディングを判定できなかった」入力においては AUTO と同様に「自動検出」を表します。
UTF16 -> Encoding
[permalink][rdoc]UTF16 を表します。
UTF32 -> Encoding
[permalink][rdoc]UTF32 を表します。
UTF8 -> Encoding
[permalink][rdoc]UTF8 を表します。