6.6. kink/CHARSET

6.6.1. charset型

charsetは文字列をバイト列にコード化する系である。

6.6.1.1. Charset.name

nameは、charsetの名前をstrとして戻す。

結果は、CHARSET.forに指定した名前と異なるかもしれない。

:CHARSET.require_from('kink/')

:Utf16 <- CHARSET.for('utf16')
stdout.print_line(Utf16.name.repr) # => "UTF-16"

6.6.1.2. Charset.str_to_bin(Str)

str_to_binは、Strをbinに変換する。

変換エラーの扱いを指定したい場合、kink/io/OUTPUT_PRINTERとkink/io/BIN_OUTPUTを用いよ。

事前条件

Strはstr型でなければならない。

StrはCharsetでエンコードできなければならない。

:CHARSET.require_from('kink/')

:Bin <- CHARSET.utf8.str_to_bin('Foo')
stdout.print_line(Bin.repr) # => (bin 0x46 0x6f 0x6f)

6.6.1.3. Charset.bin_to_str(Bin)

bin_to_strはBinをstrに変換する。

変換エラーの扱いを指定したい場合、kink/io/INPUT_SCANNERとkink/io/BIN_INPUTを用いよ。

事前条件

Binはbin型でなければならない。

BinはCharsetで、Unicode文字列としてデコードできなければならない。

:CHARSET.require_from('kink/')
:BIN.require_from('kink/')

:Str <- CHARSET.utf8.bin_to_str(BIN.of(0x46 0x6f 0x6f))
stdout.print_line(Str.repr) # => "Foo"

6.6.1.4. X == Y

== 演算子、またはop_eqメソッドは、ふたつのcharsetが同じ名前をもっているかどうかを戻す。

事前条件

Yはcharsetでなければならない。

6.6.2. CHARSET.for(Name ...[$config={}])

forは、ランタイムが提供するcharsetのリポジトリから、Nameで指定されたcharsetを探す。

コンフィグメソッド:

• C.on_success($success): default = VAL.identity.

• C.on_error($error): default = a fun which raises an exception.

指定されたcharsetが見つかった場合、forは、charsetを引数として$successを末尾呼び出しする。

指定されたcharsetが見つからなかった場合、forは、引数なしで$errorを末尾呼び出しする。

事前条件

Nameはstrでなければならない。

$successはcharsetを取る関数でなければならない。

$errorは引数を取らない関数でなければならない。

6.6.3. CHARSET.is?(Val)

is?は、Valがcharsetであるかどうかを戻す。

6.6.4. CHARSET.utf8

utf8は、UTF-8のcharsetを戻す。

6.6.5. CHARSET.ascii

asciiは、ASCIIのcharsetを戻す。

6.6.6. CHARSET.default

defaultは、ランタイムのデフォルトのcharsetを戻す。