C プログラムで、UTF-8 でエンコードされた有効な文字列のリストを Unicode コード ポイント順に並べ替えたいと考えています。照合なし、ロケール認識なし。
だから私は比較機能が必要です。Unicode 文字を繰り返し処理するような関数を作成するのは簡単です。(たまたまGLibを使用しているので、 の戻り値を反復しg_utf8_next_char
て比較しますg_utf8_next_char
。)
しかし、好奇心とおそらく単純さと効率から、私が疑問に思っているのは、単純なバイトごとのstrcmp
(またはg_strcmp
)は実際に同じ仕事をするのでしょうか?UTF-8は最初に最上位ビットをエンコードし、N + 1バイトでエンコードする必要があるコードポイントは、Nバイトでエンコードする必要があるコードポイントよりも大きな初期バイトを持つため、そうすべきだと考えています。
しかし、多分私は何かを逃していますか?前もって感謝します。