1

Carbide.c++ 2.0 を使用して、独自の Web サービスを使用する S60 アプリケーションを作成しています。Yahoo!を利用しました。画像検索の例は出発点であり、データはうまくやり取りされます。返信に英語以外の文字が含まれている場合に問題が発生し、リストボックスでユーザーに表示されるテキストが正しくありません。Web サービスが応答する XML ドキュメントは UTF8 でエンコードされており、解析されると、テキストは TDesC8 パラメータで関数に渡されます。

  1. UTF8 テキストを格納するには、どのデータ型を使用すればよいですか?
  2. TDesC8 変数/パラメータに格納されている UTF8 エンコードされたテキストを上記のデータ型の変数に変換するにはどうすればよいですか?
  3. パラメータの別のデータ型を取得するために実装できる Xml クラスの他のメソッドはありますか?
4

2 に答える 2

3
  1. S60は16ビットのUnicode文字を使用しています。したがって、のサブクラスはすべてTDesC16機能します。
  2. ネイティブcharconvライブラリを使用します。含めるcharconv.h、リンクするcharconv.lib、呼び出すなどCnvUtfConverter::ConvertToUnicodeFromUtf8()
  3. あなたが話している「Xmlクラス」に依存します。
于 2009-07-31T17:25:12.800 に答える
3

どの「XMLクラス」を使用しているかは述べていないため、他に使用できる方法があるかどうかはわかりません。

laalto が返信で述べたように、答えは静的 CnvUtfConverter::ConvertToUnicodeFromUtf8 または CnvUtfConverter::ConvertToUnicodeFromUtf8L 関数を使用することです。

TDesC8& utf8_from_xml = getUtf8String(); //get the utf8 string somehow
HBufC16* unicode_string = CnvUtfConverter::ConvertToUnicodeFromUtf8L(utf8_from_xml);
CleanupStack::PushL(unicode_string);

より多くのオプションと結果を提供する CnvUtfConverter::ConvertToUnicodeFromUtf8 の他のバリアントがあります。

CnvUtfConverter::ConvertToUnicodeFromUtf8 をグーグルで検索すると、CnvUtfConverter::ConvertToUnicodeFromUtf8 の使用方法に関するいくつかの例が示されます。

于 2009-08-02T08:15:17.427 に答える