7

私は UTF8 の基本的な理解を持っています。コード ポイントは可変長であるため、「文字」は 8 ビット、16 ビット、またはそれ以上になる可能性があります。

私が疑問に思っているのは、CEgの標準ライブラリのようなUTF8文字列と同様のことを行うC言語のサンプルコード、ライブラリなどが文字列の長さなどを伝えるかどうかです.

ありがとう、

4

3 に答える 3

4

GNU にはlibunistringと呼ばれる Unicode 文字列ライブラリがありますが、 ICUのものほどうまく処理できません。

たとえば、GNU ライブラリでは、すべての文字列比較の基礎となる照合へのアクセスすら許可されていません。対照的に、ICUはそうです。GNU が表示されない ICU のもう 1 つの機能は、Unicode 正規表現です。そのために、UTF-8 サポートでコンパイルできるPhil Hazel の C 用の優れた PCRE ライブラリを使用することをお勧めします。

ただし、必要なものには GNU ライブラリで十分な場合もあります。私はそのAPIがあまり好きではありません。非常に厄介。C プログラミングが好きなら、優れた Unicode サポートを備えたGo プログラミング言語を試すことができます。新しい言語ですが、小さくてきれいで、楽しく使えます。

一方、主要なインタープリター言語 (Perl、Python、Ruby) はすべて、C よりも優れたさまざまな Unicode サポートを備えています。これらの中で、Perl の Unicode サポートは最も発達しており、堅牢です。

覚えておいてください: より多くの文字をサポートするだけでは十分ではありません。それらに付随する規則がなければ、Unicode はありません。せいぜい、ISO 10646 を持っている可能性があります。大きな文字レパートリーですが、ルールはありません。私のモットーは次のとおりです。より多くの文字、それらを処理するための一連のルールです。」</p>

于 2012-06-10T02:06:27.757 に答える
1

Unicodeを処理するための最も重要なライブラリは、IBMのICUです。

ただし、UTF-8でエンコードされた文字列内のコードポイントの数を決定するだけの場合は、との間またはとの間の値を持つ文字の数\x01\x7F数え\xC2ます\xFF

于 2012-06-08T11:58:27.303 に答える