## Tcl9.0.3/Tk9.0.3 Documentation > Tcl C API > Utf

### Tcl/Tk Applications | Tcl Commands | Tk Commands | [incr Tcl] Package Commands | SQLite3 Package Commands | TDBC Package Commands | tdbc::mysql Package Commands | tdbc::odbc Package Commands | tdbc::postgres Package Commands | tdbc::sqlite3 Package Commands | Thread Package Commands | Tcl C API | Tk C API | [incr Tcl] Package C API | TDBC Package C API

  NAME
    Tcl_UniChar, Tcl_UniCharToUtf, Tcl_UtfToUniChar, Tcl_UtfToChar16, Tcl_UtfToWChar, Tcl_UniCharToUtfDString, Tcl_UtfToUniCharDString, Tcl_Char16ToUtfDString, Tcl_UtfToWCharDString, Tcl_UtfToChar16DString, Tcl_WCharToUtfDString, Tcl_WCharLen, Tcl_Char16Len, Tcl_UniCharLen, Tcl_UniCharNcmp, Tcl_UniCharNcasecmp, Tcl_UniCharCaseMatch, Tcl_UtfNcmp, Tcl_UtfNcasecmp, Tcl_UtfCharComplete, Tcl_NumUtfChars, Tcl_UtfFindFirst, Tcl_UtfFindLast, Tcl_UtfNext, Tcl_UtfPrev, Tcl_UniCharAtIndex, Tcl_UtfAtIndex, Tcl_UtfBackslash — routines for manipulating UTF-8 strings
  SYNOPSIS
    #include <tcl.h>
    typedef ... Tcl_UniChar;
    Tcl_Size
    Tcl_UniCharToUtf(ch, buf)
    Tcl_Size
    Tcl_UtfToUniChar(src, chPtr)
    Tcl_Size
    Tcl_UtfToChar16(src, uPtr)
    Tcl_Size
    Tcl_UtfToWChar(src, wPtr)
    char *
    Tcl_UniCharToUtfDString(uniStr, numUniChars, dsPtr)
    char *
    Tcl_Char16ToUtfDString(utf16, numUtf16, dsPtr)
    char *
    Tcl_WCharToUtfDString(wcharStr, numWChars, dsPtr)
    Tcl_UniChar *
    Tcl_UtfToUniCharDString(src, numBytes, dsPtr)
    unsigned short *
    Tcl_UtfToChar16DString(src, numBytes, dsPtr)
    wchar_t *
    Tcl_UtfToWCharDString(src, numBytes, dsPtr)
    Tcl_Size
    Tcl_Char16Len(utf16)
    Tcl_Size
    Tcl_WCharLen(wcharStr)
    Tcl_Size
    Tcl_UniCharLen(uniStr)
    int
    Tcl_UniCharNcmp(ucs, uct, uniLength)
    int
    Tcl_UniCharNcasecmp(ucs, uct, uniLength)
    int
    Tcl_UniCharCaseMatch(uniStr, uniPattern, nocase)
    int
    Tcl_UtfNcmp(cs, ct, length)
    int
    Tcl_UtfNcasecmp(cs, ct, length)
    int
    Tcl_UtfCharComplete(src, numBytes)
    Tcl_Size
    Tcl_NumUtfChars(src, numBytes)
    const char *
    Tcl_UtfFindFirst(src, ch)
    const char *
    Tcl_UtfFindLast(src, ch)
    const char *
    Tcl_UtfNext(src)
    const char *
    Tcl_UtfPrev(src, start)
    int
    Tcl_UniCharAtIndex(src, index)
    const char *
    Tcl_UtfAtIndex(src, index)
    Tcl_Size
    Tcl_UtfBackslash(src, readPtr, dst)
  引数 ARGUMENTS
    char *buf (out)
    int ch (in)
    Tcl_UniChar *chPtr (出力out)
    unsigned short (*uPtr)
    wchar_t *wPtr (出力out)
    const char *src (入力in)
    const char *cs (入力in)
    const char *ct (入力in)
    const Tcl_UniChar *uniStr (入力in)
    const Tcl_UniChar *ucs (入力in)
    const Tcl_UniChar *uct (入力in)
    const Tcl_UniChar *uniPattern (入力in)
    const unsigned short *utf16 (入力in)
    const wchar_t *wcharStr (入力in)
    int numBytes (in)
    int numUtf16 (in)
    int numUniChars (入力in)
    int numWChars (入力in)
    Tcl_DString *dsPtr (入出力in/out)
    const char *start (入力in)
    Tcl_Size index (in)
    int *readPtr (出力out)
    char *dst (出力out)
    int nocase (入力in)
  説明 DESCRIPTION
  KEYWORDS

### NAME

Tcl_UniChar, Tcl_UniCharToUtf, Tcl_UtfToUniChar, Tcl_UtfToChar16, Tcl_UtfToWChar, Tcl_UniCharToUtfDString, Tcl_UtfToUniCharDString, Tcl_Char16ToUtfDString, Tcl_UtfToWCharDString, Tcl_UtfToChar16DString, Tcl_WCharToUtfDString, Tcl_WCharLen, Tcl_Char16Len, Tcl_UniCharLen, Tcl_UniCharNcmp, Tcl_UniCharNcasecmp, Tcl_UniCharCaseMatch, Tcl_UtfNcmp, Tcl_UtfNcasecmp, Tcl_UtfCharComplete, Tcl_NumUtfChars, Tcl_UtfFindFirst, Tcl_UtfFindLast, Tcl_UtfNext, Tcl_UtfPrev, Tcl_UniCharAtIndex, Tcl_UtfAtIndex, Tcl_UtfBackslash — routines for manipulating UTF-8 strings

### SYNOPSIS

#include <tcl.h>
typedef ... Tcl_UniChar;
Tcl_Size
Tcl_UniCharToUtf(ch, buf)
Tcl_Size
Tcl_UtfToUniChar(src, chPtr)
Tcl_Size
Tcl_UtfToChar16(src, uPtr)
Tcl_Size
Tcl_UtfToWChar(src, wPtr)
char *
Tcl_UniCharToUtfDString(uniStr, numUniChars, dsPtr)
char *
Tcl_Char16ToUtfDString(utf16, numUtf16, dsPtr)
char *
Tcl_WCharToUtfDString(wcharStr, numWChars, dsPtr)
Tcl_UniChar *
Tcl_UtfToUniCharDString(src, numBytes, dsPtr)
unsigned short *
Tcl_UtfToChar16DString(src, numBytes, dsPtr)
wchar_t *
Tcl_UtfToWCharDString(src, numBytes, dsPtr)
Tcl_Size
Tcl_Char16Len(utf16)
Tcl_Size
Tcl_WCharLen(wcharStr)
Tcl_Size
Tcl_UniCharLen(uniStr)
int
Tcl_UniCharNcmp(ucs, uct, uniLength)
int
Tcl_UniCharNcasecmp(ucs, uct, uniLength)
int
Tcl_UniCharCaseMatch(uniStr, uniPattern, nocase)
int
Tcl_UtfNcmp(cs, ct, length)
int
Tcl_UtfNcasecmp(cs, ct, length)
int
Tcl_UtfCharComplete(src, numBytes)
Tcl_Size
Tcl_NumUtfChars(src, numBytes)
const char *
Tcl_UtfFindFirst(src, ch)
const char *
Tcl_UtfFindLast(src, ch)
const char *
Tcl_UtfNext(src)
const char *
Tcl_UtfPrev(src, start)
int
Tcl_UniCharAtIndex(src, index)
const char *
Tcl_UtfAtIndex(src, index)
Tcl_Size
Tcl_UtfBackslash(src, readPtr, dst)

### 引数 ARGUMENTS

char *buf (out)
  Tcl_UniChar の UTF-8 表現がその中に保存されている緩衝域｡最大では 4 バイトが緩衝域に保存されている｡　　　 Buffer in which the UTF-8 representation of the Tcl_UniChar is stored. At most 4 bytes are stored in the buffer.

int ch (in)
  変換又は調査対象のユニコード文字｡　　　 The Unicode character to be converted or examined.

Tcl_UniChar *chPtr (出力out)
  UTF-8 文字列の冒頭部による表現のTcl_UniChar で充たされている｡　 　 Filled with the Tcl_UniChar represented by the head of the UTF-8 string.

unsigned short (*uPtr)
  UTF-8 文字列の冒頭部による表現のutf-16 で充たされている｡　 Filled with the utf-16 represented by the head of the UTF-8 string.

wchar_t *wPtr (出力out)
  UTF-8 文字列の冒頭部による表現の wchar_t で充たされている｡　 Filled with the wchar_t represented by the head of the UTF-8 string.

const char *src (入力in)
  UTF-8 文字列への指示子｡　 Pointer to a UTF-8 string.

const char *cs (入力in)
  UTF-8 文字列への指示子｡　 Pointer to a UTF-8 string.

const char *ct (入力in)
  UTF-8 文字列への指示子｡　 Pointer to a UTF-8 string.

const Tcl_UniChar *uniStr (入力in)
  Tcl_UniChar単位の並び､函数に依存した選択で､零終端を伴う｡ A sequence of Tcl_UniChar units with null-termination optional depending on function.

const Tcl_UniChar *ucs (入力in)
  零終端のTcl_UniChar並び｡ A null-terminated sequence of Tcl_UniChar.

const Tcl_UniChar *uct (入力in)
  零終端のTcl_UniChar並び｡ A null-terminated sequence of Tcl_UniChar.

const Tcl_UniChar *uniPattern (入力in)
  零終端のTcl_UniChar並び｡ A null-terminated sequence of Tcl_UniChar.

const unsigned short *utf16 (入力in)
  UTF-16単位の並び､函数に依存した選択で､零終端を伴う｡ A sequence of UTF-16 units with null-termination optional depending on function.

const wchar_t *wcharStr (入力in)
  wchar_t単位の並び､函数に依存した選択で､零終端を伴う｡ A sequence of wchar_t units with null-termination optional depending on function.

int numBytes (in)
  UTF-8入力のバイト単位の長さ｡ もし負数なら､長さは最初の零バイト迄の全てのバイトを含む｡ 　 The length of the UTF-8 input in bytes. If negative, the length includes all bytes until the first null byte.

int numUtf16 (in)
  UTF-16単位の入力の長さ｡ もし負数なら､長さは最初の零迄の全てのバイトを含む｡ 　 The length of the input in UTF-16 units. If negative, the length includes all bytes until the first null.

int numUniChars (入力in)
  Tcl_UniChar単位の入力の長さ｡ もし負数なら､長さは最初の零迄の全てのバイトを含む｡ 　 The length of the input in Tcl_UniChar units. If negative, the length includes all bytes until the first null.

int numWChars (入力in)
  wchar_t単位の入力の長さ｡ もし負数なら､長さは最初の零迄の全てのバイトを含む｡ 　 The length of the input in wchar_t units. If negative, the length includes all bytes until the first null.

Tcl_DString *dsPtr (入出力in/out)
  事前に初期化された Tcl_DString への指示子｡　 A pointer to a previously initialized Tcl_DString.

const char *start (入力in)
  UTF-8 文字列の先頭への指示子｡ 　 Pointer to the beginning of a UTF-8 string.

Tcl_Size index (in)
  UTF-8 文字列内の文字(バイトではなく)の索引｡　 The index of a character (not byte) in the UTF-8 string.

int *readPtr (出力out)
  もし非-NULL なら逆斜線の並びの中の逆斜線文字も含めた､バイトの個数で充たされる｡　 If non-NULL, filled with the number of bytes in the backslash sequence, including the backslash character.

char *dst (出力out)
  逆斜線並びにより表現されたバイトがその中に保存される緩衝域｡緩衝域に最大 4 バイトが保存される｡　 Buffer in which the bytes represented by the backslash sequence are stored. At most 4 bytes are stored in the buffer.

int nocase (入力in)
  合致が大文字小文字を考慮する (0) か､又は無視する (1) か､のどちらでなされるべきかを指定する｡　　 Specifies whether the match should be done case-sensitive (0) or case-insensitive (1).

### 説明 DESCRIPTION

これ等の業務譜は UTF-8 文字列と Unicode/Utf-16 文字の間を変換する｡UTF-8 文字は 4バイト迄の可変長バイト列として表されたユニコード文字である｡多バイト UTF-8 列は先頭バイトに幾つかの従属バイトが続いて構成される｡ These routines convert between UTF-8 strings and Unicode/Utf-16 characters. A UTF-8 character is a Unicode character represented as a varying-length sequence of up to 4 bytes. A multibyte UTF-8 sequence consists of a lead byte followed by some number of trail bytes.

TCL_UTF_MAXは､Tcl_UtfToUniCharが一度の呼出で消費できるバイトの最大個数である｡ TCL_UTF_MAX is the maximum number of bytes that Tcl_UtfToUniChar can consume in a single call.

Tcl_UniCharToUtf は文字 ch を buf から始まる UTF-8 文字列として保存する｡ 返り値は buf に保存されるバイトの数である｡ 文字chは､値 TCL_COMBINEと論理和可能で､Tcl 8.xと両立する､特別の振舞を可能にする｡ 従って､もし､ ch が上サロゲート(U+D800 ～ U+DBFF の範囲)であると､返り値は 1 ､且つ 0xF0 ～ 0xF4 の範囲の一つのバイトが保存される｡ Tcl_UniCharToUtf stores the character ch as a UTF-8 string in starting at buf. The return value is the number of bytes stored in buf. The character ch can be or'ed with the value TCL_COMBINE to enable special behavior, compatible with Tcl 8.x. Then, if ch is a high surrogate (range U+D800 - U+DBFF), the return value will be 1 and a single byte in the range 0xF0 - 0xF4 will be stored. If ch is a low surrogate (range U+DC00 - U+DFFF), an attempt is made to combine the result with the earlier produced bytes, resulting in a 4-byte UTF-8 byte sequence.

Tcl_UtfToUniChar は src から始まる一つの UTF-8 文字を読み *chPtr に Tcl_UniChar として保存する｡返り値は src から読み出したバイトの数である｡ 呼出し側は､源の緩衝域が十分に長いことを確認し､この処理が末尾を駆け抜け非存在や不規則記憶を参照する事がない様にしなければならない; もし源緩衝域が零終端になっていることが判っている場合このようなことは起らない｡もし入力が適切な UTF-8 書式ではない場合､Tcl_UtfToUniChar は src の第１バイトを *chPtr に 0x00A0 から 0x00ff の間のTcl_UniChar として保存し 1 を返す｡ 入力がそれ以外の､適正なUTF-8書式ではない場合､Tcl_UtfToUniCharは*chPtr内の srcの最初のバイトを0x00A0 と 0x00FFの間のTcl_UniCharとして保存し､1を返す｡ Tcl_UtfToUniChar reads one UTF-8 character starting at src and stores it as a Tcl_UniChar in *chPtr. The return value is the number of bytes read from src. The caller must ensure that the source buffer is long enough such that this routine does not run off the end and dereference non-existent or random memory; if the source buffer is known to be null-terminated, this will not happen. If the input is a byte in the range 0x80 - 0x9F, Tcl_UtfToUniChar assumes the cp1252 encoding, stores the corresponding Tcl_UniChar in *chPtr and returns 1. If the input is otherwise not in proper UTF-8 format, Tcl_UtfToUniChar will store the first byte of src in *chPtr as a Tcl_UniChar between 0x00A0 and 0x00FF and return 1.

Tcl_UniCharToUtfDString は､入力を､ UTF-8へのTcl_UniChar符号変換位置指示 の並びの形式に変換し､ 結果を､予め初期化されている出力Tcl_DStringに追記する｡ 返す値は追記された文字列のUTF-8表現への指示子である｡ Tcl_UniCharToUtfDString converts the input in the form of a sequence of Tcl_UniChar code points to UTF-8, appending the result to the previously initialized output Tcl_DString. The return value is a pointer to the UTF-8 representation of the appended string.

Tcl_UtfToUniCharDStringは､､入力を､ Tcl_UniChar並びのUTF-8符号変換された文字列の形式に変換し､ 結果を､予め初期化されている出力Tcl_DStringの中に追記する｡ 返す値は､追記された結果への指示子であり､それもTcl_UniCharのヌル文字で同じく完了している｡[訳注:alsoの相手は何] Tcl_UtfToUniCharDString converts the input in the form of a UTF-8 encoded string to a Tcl_UniChar sequence appending the result in the previously initialized Tcl_DString. The return value is a pointer to the appended result which is also terminated with a Tcl_UniChar null character.

Tcl_WCharToUtfDStringとTcl_UtfToWCharDStringは､Tcl_UniCharToUtfDStringとTcl_UtfToUniCharDStringに似ているが､Tcl_UniCharの代りにwchar_tの並び上で操作する処が異なる｡ Tcl_WCharToUtfDString and Tcl_UtfToWCharDString are similar to Tcl_UniCharToUtfDString and Tcl_UtfToUniCharDString except they operate on sequences of wchar_t instead of Tcl_UniChar.

Tcl_Char16ToUtfDStringとTcl_UtfToChar16DStringはTcl_UniCharToUtfDStringとTcl_UtfToUniCharDStringに似ているが､Tcl_UniCharの代りにUTF-16の並び上で操作する処が異なる｡ Tcl_Char16ToUtfDString and Tcl_UtfToChar16DString are similar to Tcl_UniCharToUtfDString and Tcl_UtfToUniCharDString except they operate on sequences of UTF-16 units instead of Tcl_UniChar.

Tcl_Char16LenはUTF-16文字の為の文字列長strlenに相当する｡それはヌルが末尾になっているUTF-16並びを受取り､ヌル迄のUTF-16揃いの個数を返す｡ Tcl_Char16Len corresponds to strlen for UTF-16 characters. It accepts a null-terminated UTF-16 sequence and returns the number of UTF-16 units until the null.

Tcl_WCharLenはwchar_t文字列の為の文字列長strlenに対応する｡それは､ヌルが末尾になっているwchar_tを受取り､ヌル迄のwchar_t揃いの個数を返す｡ Tcl_WCharLen corresponds to strlen for wchar_t characters. It accepts a null-terminated wchar_t sequence and returns the number of wchar_t units until the null.

Tcl_UniCharLen はユニコード文字の為の strlen に相当する｡それは零終端のユニード文字列を受取り､文字列内の文字数(バイト数ではなく)を返す｡ Tcl_UniCharLen corresponds to strlen for Unicode characters. It accepts a null-terminated Unicode string and returns the number of Unicode characters (not bytes) in that string.

Tcl_UniCharNcmp と Tcl_UniCharNcasecmp はユニコード文字に関して､ strncmp と strncasecmp にそれぞれ相当する｡それらは二つの零終端のユニコード文字列と比較すべき文字数を受取る｡両方の文字列共に最低限 uniLength 文字長さを有すると仮定される｡Tcl_UniCharNcmp は二つの文字列を一文字づつユニコード文字の順位を比較する｡第１の文字列が第２の文字列に較べ大きいか等しいか小さい場合､それぞれ､零より大きいか等しいか小さい整数を返す｡Tcl_UniCharNcasecmp はユニコードの大文字小文字を区別しない版である｡ Tcl_UniCharNcmp and Tcl_UniCharNcasecmp correspond to strncmp and strncasecmp, respectively, for Unicode characters. They accept two null-terminated Unicode strings and the number of characters to compare. Both strings are assumed to be at least uniLength characters long. Tcl_UniCharNcmp compares the two strings character-by-character according to the Unicode character ordering. It returns an integer greater than, equal to, or less than 0 if the first string is greater than, equal to, or less than the second string respectively. Tcl_UniCharNcasecmp is the Unicode case insensitive version.

Tcl_UniCharCaseMatch は Tcl_StringCaseMatch に同一のユニコード版である｡零終端のユニコード文字列と､ユニコード紋様と､大文字小文字を区別するか否かを指定する論理値を受取り､文字列が紋様に合致するか否かを返す｡ Tcl_UniCharCaseMatch is the Unicode equivalent to Tcl_StringCaseMatch. It accepts a null-terminated Unicode string, a Unicode pattern, and a boolean value specifying whether the match should be case sensitive and returns whether the string matches the pattern.

Tcl_UtfNcmp は UTF-8 文字列の為の strncmp に相当する｡二つの零終端の UTF-8 文字列と比較すべき文字の数を受取る｡(両方の文字列は少なくとも length 文字長さ以上と仮定される｡) Tcl_UtfNcmp は二つの文字列を一文字づつユニコード文字の順位を比較する｡もし第１文字列が第２文字列より大きい､等しい､小さい場合､それぞれ 0 より大きい､等しい､小さい整数を返す｡ Tcl_UtfNcmp corresponds to strncmp for UTF-8 strings. It accepts two null-terminated UTF-8 strings and the number of characters to compare. (Both strings are assumed to be at least length characters long.) Tcl_UtfNcmp compares the two strings character-by-character according to the Unicode character ordering. It returns an integer greater than, equal to, or less than 0 if the first string is greater than, equal to, or less than the second string respectively.

Tcl_UtfNcasecmp は UTF-8 文字列の為の strncasecmp に相当する｡比較の時に大文字小文字､或は表題文字を区別しないことを除き Tcl_UtfNcmp と似ている｡ Tcl_UtfNcasecmp corresponds to strncasecmp for UTF-8 strings. It is similar to Tcl_UtfNcmp except comparisons ignore differences in case when comparing upper, lower or title case characters.

Tcl_UtfCharCompleteは､ 原資のnumBytesバイトのUTF-8 文字列srcが Tcl_UtfToUniChar/Tcl_UtfNextによって復号化されるに充分な長さであると､1を返し､そうでなければ､0を返す｡この函数は､一度に､バイト上で操作し､且つ､全ユニコード文字が､見られるかを知るかを､知る必要がある手続き函数によって使われる｡ Tcl_UtfCharComplete returns 1 if the source UTF-8 string src of numBytes bytes is long enough to be decoded by Tcl_UtfToUniChar/Tcl_UtfNext, or 0 otherwise. This function does not guarantee that the UTF-8 string is properly formed. This routine is used by procedures that are operating on a byte at a time and need to know if a full Unicode character has been seen.

Tcl_NumUtfChars は UTF-8 文字列の為の strlen に相当する｡UTF-8 で表現された文字列 src の長さを返す｡源の文字列の長さは length バイトである｡もし長さが負数である場合､最初の零バイト迄の全てのバイトが使用される｡ Tcl_NumUtfChars corresponds to strlen for UTF-8 strings. It returns the number of Tcl_UniChars that are represented by the UTF-8 string src. The length of the source string is length bytes. If the length is negative, all bytes up to the first null byte are used.

Tcl_UtfFindFirst は UTF-8 文字列の為の strchr に相当する｡零終端 UTF-8 文字列 src 内の最初の ユニコード文字 文字 ch が占めるポインタを返す｡零終端は UTF-8 文字列の一部と看做される｡ Tcl_UtfFindFirst corresponds to strchr for UTF-8 strings. It returns a pointer to the first occurrence of the Unicode character ch in the null-terminated UTF-8 string src. The null terminator is considered part of the UTF-8 string.

Tcl_UtfFindLast は UTF-8 文字列の為の strrchr に相当する｡零終端 UTF-8 文字列 src 内の最後の ユニコード文字 ch が占めるポインタを返す｡零終端は UTF-8 文字列の一部と看做される｡ Tcl_UtfFindLast corresponds to strrchr for UTF-8 strings. It returns a pointer to the last occurrence of the Unicode character ch in the null-terminated UTF-8 string src. The null terminator is considered part of the UTF-8 string.

UTF-8 文字列内のある位置へのポインタ src が与えられ Tcl_UtfNext は､文字列内の次の UTF-8 文字へのポインタを返す｡もし､文字列が零文字で終っていない場合は､呼出し側は､文字列の最後の文字の次の文字を要求してはならない｡その様な場合､ Tcl_UtfNext を呼出す前に､充分なバイトが利用可能であることを確認する為に Tcl_UtfCharComplete が使用できる｡ Given src, a pointer to some location in a UTF-8 string, Tcl_UtfNext returns a pointer to the next UTF-8 character in the string. The caller must not ask for the next character after the last character in the string if the string is not terminated by a null character. Tcl_UtfCharComplete can be used in that case to make sure enough bytes are available before calling Tcl_UtfNext.

Tcl_UtfPrev は逆向きへの進行に使われるが､ start 位置から始まる UTF-8 文字列を越える事はない｡もし､ UTF-8 文字列が完全に作成され､且つ完全な形式の文字であり且つ､ src がこれ等の文字の内の一つの先頭バイト(又は､文字列の末尾を１バイト超えた位置)を指す場合､ Tcl_UtfPrev への呼出しの繰返しは文字列内のそれぞれの文字の先頭バイトへのポインタを一度に一つの文字づつ返すことになり､ start 位置に至ると終了する｡ Tcl_UtfPrev is used to step backward through but not beyond the UTF-8 string that begins at start. If the UTF-8 string is made up entirely of complete and well-formed characters, and src points to the lead byte of one of those characters (or to the location one byte past the end of the string), then repeated calls of Tcl_UtfPrev will return pointers to the lead bytes of each character in the string, one character at a time, terminating when it returns start.

完遂の条件と適格性が満足されないかも知れぬ時､Tcl_UtfPrevの機能の更に正確な記述が必要である｡それは､常に､開始位置 startに等しいか大きな位置指示を返す; それは､ 常に､文字列内の場所への位置指示子である｡ それは､startから始まる文字を掃引する時は文字を始めるバイトへの位置指示子を常に返す｡ srcがstartより大きい時､srcより小さく､(src - 4)より大きいか等しい､位置指示子を常に返す｡ 返された位置指示子から始まる文字は､ バイトのsrc[-1]を含んでいるか､右側の継続バイトがsrcと大きい側にある場合には､最初のものである｡Tcl_UtfPrevは､バイトsrc[0]も､start[-1]バイトも､バイトsrc[-5]も､決して読まない｡ 　 When the conditions of completeness and well-formedness may not be satisfied, a more precise description of the function of Tcl_UtfPrev is necessary. It always returns a pointer greater than or equal to start; that is, always a pointer to a location in the string. It always returns a pointer to a byte that begins a character when scanning for characters beginning from start. When src is greater than start, it always returns a pointer less than src and greater than or equal to (src - 4). The character that begins at the returned pointer is the first one that either includes the byte src[-1], or might include it if the right trail bytes are present at src and greater. Tcl_UtfPrev never reads the byte src[0] nor the byte start[-1] nor the byte src[-5].

Tcl_UniCharAtIndexは､ C 言語文字列配列逆参照｡又は､パスカル言語Ord()函数である｡ それは､ UTF-8文字列src内の指定された(バイトではなく)index番目の 現されたユニコード文字を返す｡ 原資文字列は少なくともindex文字を含んでなければならない｡ もし､indexが負数の場合､-1を返す｡ Tcl_UniCharAtIndex corresponds to a C string array dereference or the Pascal Ord() function. It returns the Unicode character represented at the specified character (not byte) index in the UTF-8 string src. The source string must contain at least index characters. If index is negative it returns -1.

Tcl_UtfAtIndexは､ 指定された文字への指示子を返す､ UTF-8文字列src内の(バイトではなく) indexである｡ 原資文字列は少なくともindex文字を含んでなければならない｡ これは､Tcl_UtfToUniCharをindex回呼出すのと等価である｡ もし､indexが負数の場合､返す指示子は､原資文字列の最初の文字を指す｡ Tcl_UtfAtIndex returns a pointer to the specified character (not byte) index in the UTF-8 string src. The source string must contain at least index characters. This is equivalent to calling Tcl_UtfToUniChar index times. If index is negative, the return pointer points to the first character in the source string.

Tcl_UtfBackslash は､幾つかの Tcl 命令に使用される便益手続函数である｡それは逆斜線の文字並びを構文解析し､逆斜線の文字並びによって表現される適切な形式の UTF-8 文字列を出力緩衝域 dst に保存する｡最大 4 バイトが緩衝域内に保存される｡ Tcl_UtfBackslash は､逆斜線文字を含む逆斜線並び内のバイト個数を含む *readPtr を修正する｡返る値は出力緩衝域に保存されたバイト個数である｡ Tcl_UtfBackslash is a utility procedure used by several of the Tcl commands. It parses a backslash sequence and stores the properly formed UTF-8 character represented by the backslash sequence in the output buffer dst. At most 4 bytes are stored in the buffer. Tcl_UtfBackslash modifies *readPtr to contain the number of bytes in the backslash sequence, including the backslash character. The return value is the number of bytes stored in the output buffer.

Tcl の取扱説明書の適切な逆斜線並びの情報の項目を参照されたい｡ Tcl 取扱説明書の項目内に記述された全ての文字並びは Tcl_UtfBackslash によって運営されている｡ See the Tcl manual entry for information on the valid backslash sequences. All of the sequences described in the Tcl manual entry are supported by Tcl_UtfBackslash.

### KEYWORDS

utf, unicode, backslash
Copyright © 1997 Sun Microsystems, Inc.