D 1.0   D 2.0
About Japanese Translation

Last update Sun Dec 19 23:27:30 2010

std.utf

UTF-8, UTF-16, UTF-32 文字列のエンコード・デコードを行います。

Win32では、C の wchar_t 型は UTF-16 で、D の wchar 型に対応します。 Linuxでは、C の wchar_t 型は UTF-32 で、D utf.dchar 型に対応します。

UTF文字としてサポートする範囲は (0 <= character <= 0x10FFFF) に制限されています。

See Also:
Wikipedia
http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
http://anubis.dkuug.dk/JTC1/SC2/WG2/docs/n1335

Source:
std/utf.d

License:
Boost License 1.0.

Authors:
Walter Bright

class UtfException: object.Exception;
このモジュールからの任意のエラーに対して投げられる例外です

bool isValidDchar(dchar c);
c が有効な UTF-32 の文字かどうかをチェックします。

Unicode規格によればアプリケーション内部での使用は許されているため、 \uFFFE と \uFFFF はこの関数では有効と判定されます。 しかし、相互交換用データとしては不正な文字です。

Returns:
有効なら true 無効なら false

uint stride(in char[] s, size_t i);
stride() は、文字列 s の インデックス i から始まる UTF-8 シーケンスの長さを返します。

Returns:
UTF-8 シーケンスの長さを返します。 Throws:
s[i] がシーケンスの開始でない場合は UtfException を投げます。



uint stride(in wchar[] s, size_t i);
stride() は、文字列 s の インデックス i から始まる UTF-16 シーケンスの長さを返します。

uint stride(in dchar[] s, size_t i);
stride() は、文字列 s の インデックス i から始まる UTF-32 シーケンスの長さを返します。

Returns:
返値は常に 1 です

size_t toUCSindex(in char[] s, size_t i);
size_t toUCSindex(in wchar[] s, size_t i);
size_t toUCSindex(in dchar[] s, size_t i);
文字配列 s[] へのインデックス i が与えられると、 i がUTFシーケンスの開始と仮定して、 そこまでのUCSでの文字数を返します。

size_t toUTFindex(in char[] s, size_t n);
size_t toUTFindex(in wchar[] s, size_t n);
size_t toUTFindex(in dchar[] s, size_t n);
文字配列 s[] へのUCS文字数インデックス n が与えられると、配列上でのインデックスを返します。

dchar decode(in char[] s, ref size_t idx);
dchar decode(in wchar[] s, ref size_t idx);
dchar decode(in dchar[] s, ref size_t idx);
s[idx] から始まる文字をデコードして返します。. idx はデコードされた文字の直後へと進みます。 入力文字が正当でなければ UtfException が投げられ、idx は変化しません。

size_t encode(ref char[4u] buf, dchar c);
size_t encode(ref wchar[2u] buf, dchar c);
文字 c をエンコードし固定長配列 s へ格納します。 返値は、実際にエンコードされた後の文字の長さ (char[4] バッファなら1~4の間の数、wchar[2] バッファなら1~2のどちらか)です。

void encode(ref char[] s, dchar c);
void encode(ref wchar[] s, dchar c);
void encode(ref dchar[] s, dchar c);
文字 c をエンコードし配列 s へ追加します。

ubyte codeLength(C)(dchar c);
c を型 C で表現したときのコード長を返します。コードはバイト数ではなく文字数で返されます。

void validate(S)(in S s);
文字列が正当(well formed)であるかどうかをチェックします。Schar, wchar, dchar のいずれかの配列です。 正しくなかった場合 UtfException を投げます。全ての信頼のできない入力の正当性を確認するために使ってください。

string toUTF8(in char[] s);
string toUTF8(in wchar[] s);
string toUTF8(in dchar[] s);
文字列 s を UTF-8 へエンコードし、結果の文字列を返します。

wstring toUTF16(in char[] s);
const(wchar)* toUTF16z(in char[] s);
wstring toUTF16(in wchar[] s);
wstring toUTF16(in dchar[] s);
文字列 s を UTF-16 へエンコードし、結果の文字列を返します。 toUTF16z は、LPWSTRやLPCWSTR型の引数を取るWin32 APIの 'W' 関数を呼び出すのに便利です。

dstring toUTF32(in char[] s);
dstring toUTF32(in wchar[] s);
dstring toUTF32(in dchar[] s);
文字列 s を UTF-32 へエンコードし、結果の文字列を返します。

size_t count(E)(const(E)[] s);
文字列中のコードポイントの数を返します。

この関数への入力は必ず正しくエンコードされている必要があります。

Supercedes:
この関数は std.utf.toUCSindex() を置き換える物です。

Standards:
Unicode 5.0, ASCII, ISO-8859-1, WINDOWS-1252

Parameters:
s カウント対象の文字列