1

私のアプリケーションでは、ICU UnicodeString を使用して文字列を保存しています。ICU と互換性のないライブラリを使用しているため、UnicodeString をプラットフォームに依存する表現に変換する必要があります。

基本的に私がする必要があるのは、新しい UnicodeString オブジェクトを作成する逆のプロセス フォームです - 新しい UnicodeString("システム ロケールでエンコードされた文字列")。

このトピックを見つけたので、stringstream を使用して実行できることがわかりました。

だから私の答えは、stringstreamを使用して変換せずに、他のより簡単な方法で行うことができますか?

4

3 に答える 3

4

私が使う

std::string converted;
us.toUTF8String(converted);

私たちは (ICU) UnicodeString

于 2015-02-10T10:15:06.933 に答える
3

コードページ (またはコンバーター) でUnicodeString::extract()を使用できます。実際にコードページに NULL を渡すと、ICU がデフォルトのコードページとして検出したものが使用されます。

于 2010-12-08T17:27:18.713 に答える
0

ucnv.h-- つまりの関数を使用できますvoid ucnv_fromUnicode (UConverter *converter, char **target, const char *targetLimit, const UChar **source, const UChar *sourceLimit, int32_t *offsets, UBool flush, UErrorCode *err)。のような優れた C++ API ではありませんUnicodeStringが、動作します。

operator<<可能であれば、すでに使用しているものに固執することをお勧めします。どのような場合でも、C++ で字句変換 (つまり、文字列から整数へ) を処理する標準的な方法です。

于 2010-12-08T15:20:33.130 に答える