module Kconv

要約

文字コードエンコーディングを変換するためのモジュール。 Kconvnkf のラッパーです。

目次

モジュール関数
定数

モジュール関数

guess(str) -> Encoding | nil[permalink][rdoc]

文字列 str のエンコーディングを判定します。戻り値は Kconv の定数です。

このモジュール関数で判定できるのは、

のいずれかです。

[PARAM] str:
エンコーディング判定対象の文字列
iseuc(str) -> bool[permalink][rdoc]

文字列 str が EUC-JP なバイト列として正当であるかどうかを判定します。

[PARAM] str:
判定対象の文字列

[SEE_ALSO] String#iseuc

isjis(str) -> bool[permalink][rdoc]

文字列 str が ISO-2022-JP なバイト列として正当であるかどうかを判定します。

[PARAM] str:
判定対象の文字列

[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 なバイト列として正当であるかどうかを判定します。

[PARAM] str:
判定対象の文字列

[SEE_ALSO] String#issjis

isutf8(str) -> bool[permalink][rdoc]

文字列 str が UTF-8 なバイト列として正当であるかどうかを判定します。

[PARAM] str:
判定対象の文字列

[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 を使ってください。

[PARAM] str:
変換元の文字列
[PARAM] out_code:
変換後のエンコーディング
[PARAM] in_code:
strのエンコーディング

[SEE_ALSO] String#kconv

toeuc(str) -> String[permalink][rdoc]

文字列 str のエンコーディングを EUC-JP に変換して返します。

Kconv.kconv(str, Kconv::EUC)と同じです。

このメソッドは MIME エンコードされた文字列を展開し、いわゆる半角カナを全角に変換します。これらを変換したくない場合は、 NKF.#nkf('-exm0', str) を使ってください。

[PARAM] 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) を使ってください。

[PARAM] 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)と同じです。

[PARAM] str:
変換元の文字列

[SEE_ALSO] String#tolocale

tosjis(str) -> String[permalink][rdoc]

文字列 str のエンコーディングを shift_jis に変換して返します。

このメソッドは MIME エンコードされた文字列を展開し、いわゆる半角カナを全角に変換します。これらを変換したくない場合は、 NKF.#nkf('-sxm0', str) を使ってください。

Kconv.kconv(str, Kconv::SJIS)と同じです。

[PARAM] str:
変換元の文字列

[SEE_ALSO] Kconv.#kconv, String#tosjis

toutf16(str) -> String[permalink][rdoc]

文字列 str のエンコーディングを UTF-16BE に変換して返します。

このメソッドは MIME エンコードされた文字列を展開し、いわゆる半角カナを全角に変換します。これらを変換したくない場合は、 NKF.#nkf('-w16xm0', str) を使ってください。

Kconv.kconv(str, Kconv::UTF16)と同じです。

[PARAM] str:
変換元の文字列

[SEE_ALSO] String#toutf16

toutf32(str) -> String[permalink][rdoc]

文字列 str のエンコーディングを UTF-32 に変換して返します。

このメソッドは MIME エンコードされた文字列を展開し、いわゆる半角カナを全角に変換します。これらを変換したくない場合は、 NKF.#nkf('-w32xm0', str) を使ってください。

Kconv.kconv(str, Kconv::UTF32)と同じです。

[PARAM] str:
変換元の文字列

[SEE_ALSO] String#toutf32

toutf8(str) -> String[permalink][rdoc]

文字列 str のエンコーディングを UTF-8 に変換して返します。

このメソッドは MIME エンコードされた文字列を展開し、いわゆる半角カナを全角に変換します。これらを変換したくない場合は、 NKF.#nkf('-wxm0', str) を使ってください。

Kconv.kconv(str, Kconv::UTF8)と同じです。

[PARAM] str:
変換元の文字列

[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 を表します。