0

また、ロケールを意識した大文字と小文字の変換が必要です。.NET はこれを非常にうまく行います。私たち C++ プログラマーは、そのようなことを 100 年も待たなければならないのでしょうか? 私は ICU ライブラリを認識していますが、それは 20MB であり、コードをリンクすることさえできません...全体として、この悪夢を終わらせたい..

4

2 に答える 2

3

オペレーティング システムが提供する API を使用することもできます。Windows には、ロケール固有の文字列比較と大文字と小文字の変換を処理する NLS API があります。

スタンドアロン Unicode ライブラリは ICU と IConv です。どちらも習得に時間がかかります。データ ファイルも非常に大きいです。ほとんどの言語をサポートするには、1,000 万を超えるデータ ファイルが必要です。

ところで、リンク エラーは通常、静的ライブラリを指定したが、インポートされた関数に DLL を指定する dllimport 属性があることが原因で発生します。デフォルトでは、ICU ヘッダー ファイルはその API で dllimport を宣言します。ICU ヘッダーを含める前に、マクロを定義する必要があります。

于 2011-02-19T16:08:42.847 に答える
2
  • libiconvはクロスプラットフォームの Unicode ライブラリであり、glibcの一部であり、POSIX.1-2001 標準の一部です。Mac と Windows でも利用できます。
  • UTF-8は、ASCII と下位互換性のある文字エンコーディングです。
  • C 文字列は、ASCII および UTF-8 を保持できる null で終了するバイト配列です。

それだけです。UTF-16 および UCS-32 へのエンコード/デコード、またはレガシー オペレーティング システムとのインターフェイスが必要な場合に必要なものへのエンコード/デコード。

于 2011-02-19T15:59:40.170 に答える