英語版
このページの英語版を見る
std.encoding
様々なエンコーディング間のトランスコードと処理のためのクラスと関数。
コンパイル時にエンコーディングが既知の場合、以下の関数が提供される。
文字の任意のエンコードとデコード、異なる型の文字列間の任意のトランスコード
のための関数が提供される。
現在サポートされているエンコーディングは、UTF-8, UTF-16, UTF-32, ASCII, ISO-8859-1
(LATIN-1としても知られている)、ISO-8859-2(LATIN-2)、WINDOWS-1250、WINDOWS-1251
およびWINDOWS-1252である。
エンコーディングがコンパイル時にはわからないが、実行時にはわかる場合
の場合、抽象クラス EncodingScheme
とそのサブクラスが提供される。 ランタイム・エンコーダー/デコーダーを構築する、
を実行する。
auto e = EncodingScheme.create("utf-8");このライブラリは EncodingSchemeのサブクラスを提供する、 ISO-8859-1(LATIN-1としても知られている)、ISO-8859-2(LATIN-2)、WINDOWS-1250、 WINDOWS-1250、WINDOWS-1251、WINDOWS-1252、UTF-8、(リトルエンディアンアーキテクチャでは) UTF-16LEおよびUTF-32LE、または(ビッグエンディアンアーキテクチャでは)UTF-16BEおよびUTF-32BE。 このライブラリは、他のモジュールが他のエンコーディングのサブクラスを追加できる仕組みを提供する。 EncodingSchemeサブクラスを追加できる仕組みを提供する。
License:
Authors:
Janice Caron
ソース std/encoding.d
- enum dchar
INVALID_SEQUENCE
; - が返す特別な値。safeDecode
- enum
AsciiChar
: ubyte;
aliasAsciiString
= immutable(AsciiChar)[]; - 様々な文字セットを定義する。
- enum
Latin1Char
: ubyte; - Latin1 エンコード文字を定義する。
- alias
Latin1String
= immutable(Latin1Char)[]; - Latin1 エンコード文字列を定義する(immutable(Latin1Char) の配列として)。
- enum
Latin2Char
: ubyte; - Latin2 エンコード文字を定義する。
- alias
Latin2String
= immutable(Latin2Char)[]; - Latin2 エンコード文字列を( immutable(Latin2Char) の配列として)定義する。
- enum
Windows1250Char
: ubyte; - Windows1250 エンコード文字を定義する。
- alias
Windows1250String
= immutable(Windows1250Char)[]; - Windows1250 エンコード文字列を定義する ( immutable(Windows1250Char) の配列として)。
- enum
Windows1251Char
: ubyte; - Windows1251 エンコード文字を定義する。
- alias
Windows1251String
= immutable(Windows1251Char)[]; - Windows1251 エンコード文字列を定義する ( immutable(Windows1251Char) の配列として)。
- enum
Windows1252Char
: ubyte; - Windows1252 エンコード文字を定義する。
- alias
Windows1252String
= immutable(Windows1252Char)[]; - Windows1252 エンコード文字列を定義する ( immutable(Windows1252Char) の配列として)。
- pure nothrow @nogc @safe bool
isValidCodePoint
(dcharc
); - c が有効なコードポイントであれば true を返す。これには、文字以外のコードポイント U+FFFE と U+FFFF が含まれることに注釈: 、 これらは有効なコードポイントであることに注意。 も有効なコードポイントだからである。)
優先される この関数はstd.utf.startsValidDchar() に取って代わるものである。
Standards:Unicode5.0、ASCII、ISO-8859-1、ISO-8859-2、WINDOWS-1250、 Windows-1251、Windows-1252Parameters:dchar c
テストするコードポイント - @property string
encodingName
(T)(); - エンコーディング名を返す。エンコーディングの型は推測できない。したがって エンコーディングの型を明示的に指定する必要がある。Standards:Unicode5.0、ASCII、ISO-8859-1、ISO-8859-2、WINDOWS-1250、 Windows-1251、Windows-1252Examples:
writeln(encodingName!(char)); // "UTF-8" writeln(encodingName!(wchar)); // "UTF-16" writeln(encodingName!(dchar)); // "UTF-32" writeln(encodingName!(AsciiChar)); // "ASCII" writeln(encodingName!(Latin1Char)); // "ISO-8859-1" writeln(encodingName!(Latin2Char)); // "ISO-8859-2" writeln(encodingName!(Windows1250Char)); // "windows-1250" writeln(encodingName!(Windows1251Char)); // "windows-1251" writeln(encodingName!(Windows1252Char)); // "windows-1252"
- bool
canEncode
(E)(dcharc
); - 指定されたコードポイントをエンコードで表現できる場合に真を返す。 を表現できる場合は真を返す。エンコーディングの型は推測できない。したがって エンコーディングの型を明示的に指定する必要がある。Standards:Unicode5.0、ASCII、ISO-8859-1、ISO-8859-2、WINDOWS-1250、 Windows-1251、Windows-1252Examples:
assert( canEncode!(Latin1Char)('A')); assert( canEncode!(Latin2Char)('A')); assert(!canEncode!(AsciiChar)('\u00A0')); assert( canEncode!(Latin1Char)('\u00A0')); assert( canEncode!(Latin2Char)('\u00A0')); assert( canEncode!(Windows1250Char)('\u20AC')); assert(!canEncode!(Windows1250Char)('\u20AD')); assert(!canEncode!(Windows1250Char)('\uFFFD')); assert( canEncode!(Windows1251Char)('\u0402')); assert(!canEncode!(Windows1251Char)('\u20AD')); assert(!canEncode!(Windows1251Char)('\uFFFD')); assert( canEncode!(Windows1252Char)('\u20AC')); assert(!canEncode!(Windows1252Char)('\u20AD')); assert(!canEncode!(Windows1252Char)('\uFFFD')); assert(!canEncode!(char)(cast(dchar) 0x110000));
Examples:文字列全体をチェックする方法import std.algorithm.searching : find; import std.utf : byDchar; assert("The quick brown fox" .byDchar .find!(x => !canEncode!AsciiChar(x)) .empty);
- bool
isValidCodeUnit
(E)(Ec
); - コード・ユニットが合法であれば真を返す。例えば、バイト0x80はASCIIでは合法ではない。 はASCIIでは合法ではない。 0x00から0x7Fの範囲でなければならないからである。Standards:Unicode 5.0、ASCII、ISO-8859-1、ISO-8859-2、WINDOWS-1250、 Windows-1251、Windows-1252Parameters:
E c
テストするコードユニット Examples:assert(!isValidCodeUnit(cast(char) 0xC0)); assert(!isValidCodeUnit(cast(char) 0xFF)); assert( isValidCodeUnit(cast(wchar) 0xD800)); assert(!isValidCodeUnit(cast(dchar) 0xD800)); assert(!isValidCodeUnit(cast(AsciiChar) 0xA0)); assert( isValidCodeUnit(cast(Windows1250Char) 0x80)); assert(!isValidCodeUnit(cast(Windows1250Char) 0x81)); assert( isValidCodeUnit(cast(Windows1251Char) 0x80)); assert(!isValidCodeUnit(cast(Windows1251Char) 0x98)); assert( isValidCodeUnit(cast(Windows1252Char) 0x80)); assert(!isValidCodeUnit(cast(Windows1252Char) 0x81));
- bool
isValid
(E)(const(E)[]s
); - 文字列が正しくエンコードされていれば真を返す
補足 この関数はstd.utf.validate()に取って代わるものである。 関数は入力が有効かどうかを示すブールを返す、 一方、古い関数は例外をスローする。
Standards:Unicode5.0、ASCII、ISO-8859-1、ISO-8859-2、WINDOWS-1250、 Windows-1251、Windows-1252Parameters:const(E)[] s
テストする文字列 Examples:assert( isValid("\u20AC100")); assert(!isValid(cast(char[3])[167, 133, 175]));
- size_t
validLength
(E)(const(E)[]s
); - 最初のコード・ユニットから始まる、可能な限り長い部分文字列の長さを返す。 から始まり、エンコードされている最長の部分文字列の長さを返す。Standards:Unicode 5.0、ASCII、ISO-8859-1、ISO-8859-2、WINDOWS-1250、 Windows-1251、Windows-1252Parameters:
const(E)[] s
テストする文字列 - immutable(E)[]
sanitize
(E)(immutable(E)[]s
); - 不正なコード・ユニット・シーケンスを有効なコード・ユニット・シーケンスに置き換えることで、文字列をサニタイズする。 に置き換える。結果は、このエンコーディングに対して有効であることが保証される。入力文字列がすでに有効な場合、この関数は元の文字列を返す、 そうでない場合は、不正なコード単位列をすべてエンコーディングの置換コード単位列に置き換えることで新しい文字列を作成する。 無効なシーケンスはUnicodeの置換文字で置換される。 無効なシーケンスは、Unicodeの置換文字(U+FFFD)で置き換えられる。 に置き換えられる。 に置き換えられる。Standards:Unicode5.0、ASCII、ISO-8859-1、ISO-8859-2、WINDOWS-1250、 Windows-1251、Windows-1252Parameters:
immutable(E)[] s
サニタイズされる文字列 Examples:writeln(sanitize("hello \xF0\x80world")); // "hello \xEF\xBF\xBDworld"
- size_t
firstSequence
(E)(const(E)[]s
); - 最初にエンコードされた配列の長さを返す。この関数への入力は正しくエンコードされなければならない。 これは関数の契約によって強制される。Standards:Unicode5.0、ASCII、ISO-8859-1、ISO-8859-2、WINDOWS-1250、 Windows-1251、Windows-1252Parameters:
const(E)[] s
スライスされる文字列 Examples:writeln(firstSequence("\u20AC1000")); // "\u20AC".length writeln(firstSequence("hel")); // "h".length
- size_t
lastSequence
(E)(const(E)[]s
); - 最後にエンコードされた配列の長さを返す。この関数への入力は正しくエンコードされなければならない(MUST)。 これは関数の契約によって強制される。Standards:Unicode5.0、ASCII、ISO-8859-1、ISO-8859-2、WINDOWS-1250、 Windows-1251、Windows-1252Parameters:
const(E)[] s
スライスされる文字列 Examples:writeln(lastSequence("1000\u20AC")); // "\u20AC".length writeln(lastSequence("hellö")); // "ö".length
- ptrdiff_t
index
(E)(const(E)[]s
, intn
); - (n+1)番目のコードポイントが始まる配列のインデックスを返す。この関数への入力は正しくエンコードされなければならない。 これは関数の契約によって強制される。
優先される この関数はstd.utf.toUTFindex()に取って代わるものである。
Standards:Unicode5.0、ASCII、ISO-8859-1、ISO-8859-2、WINDOWS-1250、 Windows-1251、Windows-1252Parameters:const(E)[] s
カウントされる文字列 int n
現在のコードポイントインデックス Examples:writeln(index("\u20AC100", 1)); // 3 writeln(index("hällo", 2)); // 3
- dchar
decode
(S)(ref Ss
); - 1つのコードポイントをデコードする。この関数は、文字列の先頭から1つ以上のコードユニットを取り除く、 これらのコードユニットが表すデコードされたコードポイントを返す。 この関数への入力は有効に符号化されなければならない(MUST)。 これは関数の契約によって強制される。
補足 この関数はstd.utf.decode()に取って代わるものである。 関数 codePoints() の方がより便利であることに注意されたい。
Standards:Unicode 5.0、ASCII、ISO-8859-1、ISO-8859-2、WINDOWS-1250、 Windows-1251、Windows-1252Parameters:S s
最初のコードポイントをデコードする文字列 - dchar
decodeReverse
(E)(ref const(E)[]s
); - 文字列の末尾から1つのコードポイントをデコードする。この関数は、文字列の末尾から1つ以上のコードユニットを取り除く、 そして、それらのコードユニットが表すデコードされたコードポイントを返す。 この関数への入力は、正しく符号化されていなければならない(MUST)。 これは関数の契約によって強制される。Standards:Unicode5.0、ASCII、ISO-8859-1、ISO-8859-2、WINDOWS-1250、 Windows-1251、Windows-1252Parameters:
const(E)[] s
最初のコードポイントをデコードする文字列 - dchar
safeDecode
(S)(ref Ss
); - 1つのコードポイントをデコードする。入力が有効である必要はない。この関数は、文字列の先頭から1つ以上のコードユニットを取り除く、 これらのコードユニットが表すデコードされたコードポイントを返す。 この関数は、無効な符号化文字列を入力として受け付ける。 文字列の先頭に無効なシーケンスが見つかった場合、この 関数はそれを取り除き、値 INVALID_SEQUENCE を返す。Standards:Unicode5.0、ASCII、ISO-8859-1、ISO-8859-2、WINDOWS-1250、 Windows-1251、Windows-1252Parameters:
S s
最初のコードポイントをデコードする文字列 - size_t
encodedLength
(E)(dcharc
); - 1つの符号点を符号化するのに必要な符号単位の数を返す。この関数への入力は、有効なコードポイントでなければならない(MUST)。 これは関数の契約によって強制される。 出力の型は推論できない。したがって エンコーディングをテンプレート・パラメータとして明示的に指定する必要がある。Standards:Unicode 5.0、ASCII、ISO-8859-1、ISO-8859-2、WINDOWS-1250、 Windows-1251、Windows-1252Parameters:
dchar c
エンコードするコードポイント - E[]
encode
(E)(dcharc
); - 1つのコードポイントをエンコードする。この関数は、1つのコードポイントを1つ以上のコードユニットにエンコードする。 これらのコードユニットを含む文字列を返す。 この関数への入力は、有効なコードポイントでなければならない(MUST)。 これは関数の契約によって強制される。 出力の型は推論できない。したがって エンコーディングをテンプレート・パラメータとして明示的に指定する必要がある。
補足 この関数はstd.utf.encode()に取って代わるものである。 codeUnits()関数の方がより便利である。
Standards:Unicode 5.0、ASCII、ISO-8859-1、ISO-8859-2、WINDOWS-1250、 Windows-1251、Windows-1252Parameters:dchar c
エンコードするコードポイント - size_t
encode
(E)(dcharc
, E[]array
); - 1つのコードポイントを配列にエンコードする。この関数は、1つのコードポイントを1つ以上のコードユニットにエンコードする。 コード・ユニットは、ユーザーが提供する固定サイズの配列に格納される、 参照渡しでなければならない。 この関数への入力は、有効なコードポイントでなければならない(MUST)。 これは関数の契約によって強制される。 出力の型は推論できない。したがって エンコーディングをテンプレート・パラメータとして明示的に指定する必要がある。
補足 この関数はstd.utf.encode()に取って代わるものである。 codeUnits()関数の方がより便利である。
Standards:Unicode 5.0、ASCII、ISO-8859-1、ISO-8859-2、WINDOWS-1250、 Windows-1251、Windows-1252Parameters:dchar c
エンコードするコードポイント E[] array
符号化先の配列 Returns:配列に書き込まれるコードユニットの数 - void
encode
(E)(dcharc
, void delegate(E)dg
); - 1つのコードポイントをデリゲートにエンコードする。この関数は、1つのコードポイントを1つ以上のコードユニットにエンコードする。 コードユニットは、指定されたデリゲートに一度に1つずつ渡される。 この関数への入力は、有効なコードポイントでなければならない(MUST)。 これは関数の契約によって強制される。 出力の型は推論できない。したがって エンコーディングをテンプレート・パラメータとして明示的に指定する必要がある。
補足 この関数はstd.utf.encode()に取って代わるものである。 codeUnits()関数の方がより便利である。
Standards:Unicode 5.0、ASCII、ISO-8859-1、ISO-8859-2、WINDOWS-1250、 Windows-1251、Windows-1252Parameters:dchar c
エンコードするコードポイント void delegate(E) dg
各コードユニットに対して呼び出されるデリゲート - size_t
encode
(Tgt, Src, R)(in Src[]s
, Rrange
); - の内容をエンコードする。
s
の内容をTgt 型の単位でエンコードする。 出力範囲に結果を書き出す。Returns:書き込まれたTgt 要素の数。Parameters:Tgt の要素型。 range
.Src[] s
入力配列。 R range
出力範囲。 - CodePoints!E
codePoints
(E)(immutable(E)[]s
); - 文字列内のすべてのコードポイントを双方向に反復処理できるforeach可能な構造体を返す。 を双方向に反復できる foreachable 構造体を返す。この関数への入力は正しくエンコードされなければならない。 これは関数の契約によって強制される。 foreachは を指定することができる。インデックスが指定された場合、それは各反復で初期化される。 が初期化される。 が始まる文字列のオフセットで初期化される。
補足 この関数はstd.utf.decode()に取って代わるものである。
Standards:Unicode5.0、ASCII、ISO-8859-1、ISO-8859-2、WINDOWS-1250、 Windows-1251、Windows-1252Parameters:immutable(E)[] s
デコードされる文字列 例:
string s = "hello world"; foreach (c;codePoints(s)) { // cで何かをする(これは常にdcharになる) }
現在のところ、foreach (c:codePoints(s))はforeach (c;s)よりも優れている。 の方が優れていることに注意されたい。Examples:string s = "hello"; string t; foreach (c;codePoints(s)) { t ~= cast(char) c; } writeln(s); // t
- CodeUnits!E
codeUnits
(E)(dcharc
); - コードポイント内のすべてのコードユニットを双方向に反復処理できるforeach可能な構造体を返す。 を双方向に反復できる foreachable 構造体を返す。この関数の入力は、有効なコードポイントでなければならない(MUST)。 これは関数の契約によって強制される。 出力の型は推論できない。したがって を明示的に指定する必要がある。
補足 この関数はstd.utf.encode()に取って代わるものである。
Standards:Unicode5.0、ASCII、ISO-8859-1、ISO-8859-2、WINDOWS-1250、 Windows-1251、Windows-1252Parameters:dchar c
エンコードするコードポイント Examples:char[] a; foreach (c;codeUnits!(char)(cast(dchar)'\u20AC')) { a ~= c; } writeln(a.length); // 3 writeln(a[0]); // 0xE2 writeln(a[1]); // 0x82 writeln(a[2]); // 0xAC
- void
transcode
(Src, Dst)(Src[]s
, out Dst[]r
); - 文字列をあるエンコーディングから別のエンコーディングに変換する。
補足 この関数は、std.utf.toUTF8()、std.utf.toUTF16() および および std.utf.toUTF32() (しかし、to!"の方がより便利であることに注意)。
Standards:Unicode5.0、ASCII、ISO-8859-1、ISO-8859-2、WINDOWS-1250、 Windows-1251、Windows-1252Parameters:Src[] s
ソース文字列。有効なエンコードでなければならない。 これは関数の契約によって強制される。 Dst[] r
デスティネーション文字列 See Also:Examples:wstring ws; // UTF-8からUTF-16にトランスコードする transcode("hello world",ws); writeln(ws); // "hello world"w Latin1String ls; // UTF-16からISO-8859-1へのトランスコード transcode(ws, ls); writeln(ls); // "hello world"
- class
EncodingException
: object.Exception; - このモジュールがスローする例外の基底クラス
- abstract class
EncodingScheme
; - すべてのエンコーディングスキームの抽象基底クラス
- void
register
(Klass : EncodingScheme)(); - EncodingSchemeのサブクラスを登録する。この関数により、EncodingSchemeのユーザ定義のサブクラスを他のモジュールで宣言することができる。 を他のモジュールで宣言できるようにする。Parameters:
Klass 登録するEncodingSchemeのサブクラス。 例:
class Amiga1251 : EncodingScheme { shared static this() { EncodingScheme.register!Amiga1251; } }
- static EncodingScheme
create
(stringencodingName
); - EncodingSchemeのサブクラスを取得する。 のサブクラスを取得する。この関数は、register()関数で登録されたEncodingSchemeのみを認識する。 のみを認識する。
例:
auto scheme = EncodingScheme.create("Amiga-1251");
- abstract const string
toString
(); - エンコーディングスキームの標準名を返す
- abstract const string[]
names
(); - このエンコーディングスキームの既知の名前をすべて配列で返す
- abstract const bool
canEncode
(dcharc
); - 文字 c がこのエンコーディング方式で表現できる場合は true を返す を返す。
- abstract const size_t
encodedLength
(dcharc
); - このコードポイントのエンコードに必要なubyte数を返す。この関数への入力は有効なコードポイントでなければならない。Parameters:
dchar c
エンコードされるコードポイント Returns:必要なubyte数。 - abstract const size_t
encode
(dcharc
, ubyte[]buffer
); - 1つのコードポイントを、ユーザーが提供する固定サイズのバッファにエンコードする。この関数は、1つのコードポイントを1つ以上のubyteにエンコードする。 提供されるバッファはコード単位にアラインされていなければならない。 (例: UTF-16LE または UTF-16BE は "wchar" アラインでなければならない、 UTF-32LE または UTF-32BE は dchar アラインでなければならない。) この関数への入力は有効なコードポイントでなければならない(MUST)。Parameters:
dchar c
エンコードされるコードポイント ubyte[] buffer
出力配列 Returns:書き込まれたubyte数。 - abstract const dchar
decode
(ref const(ubyte)[]s
); - 1つのコードポイントをデコードする。この関数は、配列の先頭から1つ以上のubyteを取り除く、 そのubyteが表すデコードされたコードポイントを返す。 この関数への入力は正しく符号化されていなければならない。Parameters:
const(ubyte)[] s
最初のコードポイントをデコードする配列 - abstract const dchar
safeDecode
(ref const(ubyte)[]s
); - 1つの符号点を復号する。入力は有効である必要はない。この関数は、配列の先頭から1つ以上のubyteを取り除く、 そのubyteが表すデコードされたコードポイントを返す。 この関数は、入力として無効な符号化配列を受け付ける。 文字列の先頭に無効なシーケンスが見つかった場合、この 関数はそれを取り除き、値 INVALID_SEQUENCE を返す。Parameters:
const(ubyte)[] s
最初のコードポイントをデコードする配列 - abstract const @property immutable(ubyte)[]
replacementSequence
(); - エンコード方式で表現できない文字を表現するために使用される "ubyte"のシーケンスを返す。 ubyteのシーケンスを返す。通常は、U+FFFDや'? や '?' のような置換文字の表現となる。
- bool
isValid
(const(ubyte)[]s
); - 配列が正しくエンコードされていれば真を返すParameters:
const(ubyte)[] s
テスト対象の配列 - size_t
validLength
()(const(ubyte)[]s
); - から始まる部分文字列のうち、最も長いものの長さを返す。 エンコードされた最初の要素から始まる、可能な限り長い部分文字列の長さを返す。Parameters:
const(ubyte)[] s
テスト対象の配列 - immutable(ubyte)[]
sanitize
()(immutable(ubyte)[]s
); - 不正なubyteシーケンスを有効なubyteシーケンスに置き換えることで、 配列をサニタイズする。 に置き換えることで配列をサニタイズする。その結果は、この エンコーディング方式では有効であることが保証される。入力配列がすでに有効である場合、この関数は元の配列を返す。 そうでない場合は、すべての不正な配列を符号化スキームの置換配列に置き換えて新しい配列を構築する。 の配列を符号化スキームの置換配列に置き換えて新しい配列を構築する。Parameters:
immutable(ubyte)[] s
サニタイズされる文字列 - size_t
firstSequence
()(const(ubyte)[]s
); - 最初にエンコードされたシーケンスの長さを返す。この関数への入力は正しくエンコードされなければならない(MUST)。 これは関数の契約によって強制される。Parameters:
const(ubyte)[] s
スライスされる配列 - size_t
count
()(const(ubyte)[]s
); - ubyte配列にエンコードされたコードポイントの総数を返す。この関数への入力は正しくエンコードされていなければならない。 これは関数の契約によって強制される。Parameters:
const(ubyte)[] s
カウントされる文字列 - ptrdiff_t
index
()(const(ubyte)[]s
, size_tn
); - (n+1)番目のコードポイントが始まる配列インデックスを返す。この関数への入力は正しくエンコードされなければならない(MUST)。 これは関数の契約によって強制される。Parameters:
const(ubyte)[] s
カウントされる文字列 size_t n
現在のコードポイントインデックス
- class
EncodingSchemeASCII
: std.encoding.EncodingScheme; - ASCIIを扱うためのEncodingSchemeこのスキームは以下の名前を認識する: "ansi_x3.4-1968"、 "ansi_x3.4-1986"である、 "ASCII"、 "IBM367"、 "ISO646-US"である、 "ISO_646.irv:1991"、 "US-ASCII"である、 "cp367"、 "csASCII" 「iso-ir-6"、 "us"
- class
EncodingSchemeLatin1
: std.encoding.EncodingScheme; - Latin-1を扱うEncodingSchemeこのスキームは以下の名前を認識する: "CP819"、 "IBM819"、 "ISO-8859-1"、 "ISO_8859-1"、 "ISO_8859-1:1987"である、 "csISOLatin1"、 「iso-ir-100 "である、 "l1", "latin1"
- class
EncodingSchemeLatin2
: std.encoding.EncodingScheme; - Latin-2を扱うEncodingSchemeこのスキームは以下の名前を認識する: "Latin 2"、 "ISO-8859-2"、 "ISO_8859-2"、 "ISO_8859-2:1999"である、 "Windows-28592"
- class
EncodingSchemeWindows1250
: std.encoding.EncodingScheme; - Windows-1250を扱うEncodingSchemeこのスキームは以下の名前を認識する: "windows-1250"
- class
EncodingSchemeWindows1251
: std.encoding.EncodingScheme; - Windows-1251 を扱うためのエンコーディングスキーム。このスキームは以下の名前を認識する: "windows-1251"
- class
EncodingSchemeWindows1252
: std.encoding.EncodingScheme; - Windows-1252を扱うためのEncodingSchemeこのスキームは以下の名前を認識する: "windows-1252"
- class
EncodingSchemeUtf8
: std.encoding.EncodingScheme; - UTF-8 を扱うための EncodingSchemeこのスキームは以下の名前を認識する: "UTF-8"
- class
EncodingSchemeUtf16Native
: std.encoding.EncodingScheme; - UTF-16 をネイティブバイト順で扱うための EncodingSchemeこのスキームは以下の名前を認識する: "UTF-16LE" (リトルエンディアン・アーキテクチャのみ) "UTF-16BE" (ビッグエンディアン・アーキテクチャのみ)
- class
EncodingSchemeUtf32Native
: std.encoding.EncodingScheme; - ネイティブバイト順の UTF-32 を扱うための EncodingSchemeこのスキームは以下の名前を認識する: "UTF-32LE" (リトルエンディアン・アーキテクチャのみ) "UTF-32BE" (ビッグエンディアン・アーキテクチャのみ)
- enum
BOM
: int; - 一般的なバイトオーダーマークの定義。 enum の要素は、bomTable のインデックスとして使用できる。 BOMSeq にマッチする。
none
- BOMが見つからない
utf32be
- [0x00、0x00、0xFE、0xFF]。
utf32le
- [0xFF、0xFE、0x00、0x00]。
utf7
- 0xFF, 0xFE, 0x00, 0x00] [0x2B, 0x2F, 0x76, 0x38] である。 [0x2B, 0x2F, 0x76, 0x39]である、 [0x2B, 0x2F, 0x76, 0x2B]である、 [0x2B, 0x2F, 0x76, 0x2F]である、 [0x2B、0x2F、0x76、0x38、0x2D]
utf1
- [0xF7, 0x64, 0x4C] とする。
utfebcdic
- 0xF7, 0x64, 0x4C] [0xDD, 0x73, 0x66, 0x73
scsu
- 0xFD, 0x73, 0x66, 0x73] [0x0E, 0xFE, 0xFF
bocu1
- [0xFB, 0xEE, 0x28] とする。
gb18030
- 0xFB, 0xEE, 0x28] [0x84, 0x31, 0x95, 0x33] とする。
utf8
- [0xEF, 0xBB, 0xBF] とする。
utf16be
- 0xFE, 0xFF] [0xFE, 0xFF
utf16le
- [0xFF, 0xFE] である。
- alias
BOMSeq
= std.typecons.Tuple!(BOM, "schema", ubyte[], "sequence").Tuple; - bomTable 内部に格納されている "型"。
- immutable Tuple!(BOM, "schema", ubyte[], "sequence")[]
bomTable
; - へのバイト列のマッピングByte Order Mark (BOM)
- immutable(BOMSeq)
getBOM
(Range)(Rangeinput
)
if (isForwardRange!Range && is(immutable(ElementType!Range) == immutable(ubyte))); - BOMSeq 与えられた
input
. BOM が存在しない場合は、BOM.none に対するBOMSeq が返される。 が返される。範囲の先頭にあるBOM のシーケンスは、渡された範囲から計算されない。 のシーケンスは、渡された範囲から計算されない。参照 "型"を渡す場合は、。 範囲を渡す場合は、save がディープコピーを作成することを確認する。Parameters:Range input
をチェックするシーケンスはBOM Returns:BOMSeq 渡されたinput
.Examples:import std.format : format; auto ts = dchar(0x0000FEFF) ~ "Hello World"d; auto entry = getBOM(cast(ubyte[]) ts); version (BigEndian) { writeln(entry.schema); // BOM.utf32be } else { writeln(entry.schema); // BOM.utf32le }
- enum dchar
utfBOM
; - 完全にデコードされたBOMを定義する定数
Copyright © 1999-2024 by the D Language Foundation
DEEPL APIにより翻訳、ところどころ修正。
このページの最新版(英語)
このページの原文(英語)
翻訳時のdmdのバージョン: 2.108.0
ドキュメントのdmdのバージョン: 2.109.1
翻訳日付 :
HTML生成日時:
編集者: dokutoku