24

C++ 用の優れた Unicode ライブラリが必要です。私は欲しい:

  1. Unicode に敏感な方法での変換。たとえば、大文字と小文字を区別しない方法ですべての文字列を並べ替え、インデックスの最初の文字を取得します。さまざまな Unicode 文字列を大文字と小文字に変換します。適切な位置でテキストを分割します。これは、中国語と日本語でも機能する単語です。
  2. ロケールに依存する方法で数値、日付をフォーマットします (スレッドセーフにする必要があります)。
  3. UTF-8 (プライマリ内部表現) の透過的なサポート。

私の知る限り、最高のライブラリは ICU です。ただし、例を含む通常の開発者向け API ドキュメントは見つかりません。また、私が見る限り、最新の C++ 設計や STL などとの連携にはあまり適していません。このような:

std::string msg;
unistring umsg.from_utf8(msg);
unistring::word_iterator wi;
for(wi=umsg.words().begin(),n=0;wi!=usmg.words().wi_end(),n<10;++wi,++n) 
  ;
msg=umsg.substr(umsg.words().begin(),wi).to_utf8();
cout<<_("Five 10 words are ")<<msg;

オープン ソース ライセンスの下でリリースされた、STL に適した ICU ラッパーはありますか? Preferred は MIT や Boost のようにライセンスを許可するものですが、LGPLv2 互換のようなその他のものも同様です。

ICU に似た高品質のライブラリは他にありますか?

プラットフォーム: Unix/POSIX、Windows サポートは必要ありません。

編集:残念ながら私はログインしていなかったので、回答を受け入れることはできません. 私は自分で答えを添付しました。

4

3 に答える 3

21

この質問は、かなり前に私自身が尋ねたものです。そのような図書館はありませんでした。

そこで、ICU をラップする C++ フレンドリーなBoost.Localeライブラリを作成しました。

Edit Now Boost の一部: Boost.Locale のドキュメントを参照

于 2009-11-09T17:44:51.693 に答える
1

これは法案に適合しますか?

http://www.codeproject.com/KB/string/utf8cpp.aspx

于 2009-02-04T13:44:32.350 に答える
1

wxWidgets GUI ツールキットには、優れた文字列クラスと Unicode サポートがいくつかあります。したくない場合は、GUI クラスを作成/使用する必要はありません。詳しくはこちらをご覧ください。

于 2009-02-04T13:20:39.823 に答える