2013-06-18 6 views
0

Я разработал приложение для запроса и ответа Http в Tizen. Я успешно могу отправить сообщение и получить ответ. (Проверенная длина тела). Ответ, который я получил, находится в ByteBuffer.ByteBuffer to String

ByteBuffer* pBuffer = pHttpResponse->ReadBodyN(); 

Я мало беден по типу. Я хочу, чтобы этот ByteBuffer преобразовывался в строку, чтобы я мог установить ее в Label.

+0

ByteBuffer - это класс? Имеет ли он какую-либо функцию-член getchar()? –

+0

@NishithJainMR. Нет. У этого есть GetWChar. – Cyril

+1

Вы ищете «wstring» или «string» в результате? Какая кодировка - ByteBuffer? –

ответ

1

Являются ли данные в ByteBuffer с нулевым завершением ASCII? В этом случае вы можете создать строку, как это:

String str((const char*)(byteBuf.GetPointer())); 

В противном случае вы можете декодировать ByteBuffer с помощью Tizen::Text::Encoding, до тех пор, как вы знаете, что кодирование. Например:

// Construct some test data. In your case the buffer would come 
// as a HTTP response. 
char chars[] = "\xE5\xE6\xF6"; // æåø in ISO-8859-1 
ByteBuffer byteBuf; 
byteBuf.Construct((byte*)chars, 0, 3, 3); 

Encoding* pEnc = Encoding::GetEncodingN(L"ISO-8859-1"); 
String str; 
pEnc->GetString(byteBuf, 0, byteBuf.GetRemaining(), str); 

Label *pLabel = static_cast<Label*>(GetControl(IDC_LABEL1)); 
pLabel->SetText(str); 
+0

Нет. Это не работает. Он печатается как пустой – Cyril

+0

Он работает, если данные ASCII с нулевым завершением, поэтому ответ, который вы получаете, по-видимому, не соответствует этим критериям. Вы хоть представляете, в чем кодировка? – Michael

+0

Это URL: http://www.w3schools.com/xml/note.xml – Cyril