目次 - SDL 3.0 API(機能別) - 標準ライブラリ - SDL_StepUTF8

SDL_StepUTF8

UTF-8文字列から1つのコードポイントをデコードする

ヘッダ

SDL3/SDL_stdinc.h

構文

Uint32 SDL_StepUTF8(const char **pstr, size_t *pslen);

引数

const char **pstr読み込み後に変更されるUTF-8文字列へのポインタへのポインタ
size_t *pslen読み込み後に変更される文字列のバイト長へのポインタへのポインタ. NULLも可

戻り値

(Uint32) 文字列の先頭のUnicodeコードポイントを戻す.

詳細

この関数は, *pstrが示すUTF-8文字列の先頭のUnicodeコードポイントを戻し, その後に戻した文字の分だけ*pstrを進める.

*pslenバイトを超える文字列にアクセスすることはない. *pslenは消費したバイトだけ減算される.

pslenはNULLでもよい. その場合, 文字列の終端にはNULが必要で, この関数はNUL文字が見つかるまで処理を進める.

*pslenが0の場合, 文字列の終端に達したとみなし, 文字列バッファの内容に関わらず0コードポイントを戻す.

コードポイント0(NUL終端)に達した, または*pslenが0の場合, *pstr*pslenは進まない.

一般的には, この関数はループ内で0が戻るまで呼び出し, 繰り返しのたびに引数が設定される.

無効なUTF-8シーケンスに遭遇した場合, この関数はSDL_INVALID_UNICODE_CODEPOINTを戻し, 文字列/バイト長を1バイト進める(言い換えると, マルチバイトシーケンスは次の有効なUTF-8シーケンスと同期できるまで複数のSDL_INVALID_UNICODE_CODEPOINTを戻すことがありうる).

無効なUTF-8シーケンスは, 冗長なエンコード, UTF-16サロゲート値の使用, データの切り詰めなどで起こりうる. 詳細はRFC3629を参照すること.

スレッドセーフ

この関数はどのスレッドからも安全に呼べる.

バージョン

SDL 3.2.0以降

SDL Wikiへのリンク

SDL_StepUTF8 - SDL Wiki