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を戻す。