1

幅広いUTF-8文字を期待するCアプリケーションを開発していたので、ICUライブラリを使用してUnicode文字をサポートし始めましたが、他のライブラリ(主にjansson、JSONライブラリ)ではうまく機能していないようです. .

janssonは UTF-8 を完全にサポートしている主張していますが、パラメーターとして文字のみを想定しています (IIRC、Unicode 文字には 1 バイトでは不十分です)。一方、ICU はUChar(少なくとも私のシステムでは 16 バイト サイズの文字)と呼ばれる特殊な型を使用します。 .

大きなデータを小さなデータにキャストするとデータが失われるため、Unicode 文字を通常の文字にキャストすることは、私には解決策のようには思えません。とにかくキャストしてみました。うまくいきませんでした。

私の質問は、どうすれば 2 つのライブラリをうまく連携させることができるでしょうか?

4

1 に答える 1

1

toUTF8/を使用して ICU に UTF-8 で出力を生成させますtoUTF8String。( toUTF8String は、 Jansson が望むを取得するstd::stringために soを提供します。.c_str()char*

于 2013-07-18T10:59:54.860 に答える