2013-06-18 3 views
0

나는 Tizen에서 HTTP 요청 및 응답을위한 응용 프로그램을 개발했습니다. 나는 성공적으로 답변을 게시하고받을 수 있습니다. (Checked Body length). 내가받은 응답은 ByteBuffer에 있습니다.ByteBuffer에서 String

ByteBuffer* pBuffer = pHttpResponse->ReadBodyN(); 

나는 형 변환이 거의 없습니다. 이 ByteBuffer를 문자열로 변환하여 Label에서 설정할 수 있도록합니다.

+0

ByteBuffer는 클래스입니까? getchar() public 멤버 함수가 있습니까? –

+0

@NishithJainMR. 아닙니다. GetWChar가 있습니다. – Cyril

+1

결과로'wstring' 또는'string'을 찾으십니까? ByteBuffer에는 어떤 인코딩이 있습니까? –

답변

1

ByteBuffer의 데이터는 제로 - 종료 ASCII입니까? 이 경우이 같은 문자열을 만들 수 있습니다

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

그렇지 않으면 당신이 ByteBufferTizen::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

비어있는 것으로 인쇄됩니다. 데이터가 0으로 끝나는 ASCII 인 경우 작동하므로 분명히 얻은 응답이 해당 기준을 충족시키지 못합니다. 인코딩 내용을 알고 있습니까? – Michael

+0

이것은 URL입니다. http://www.w3schools.com/xml/note.xml – Cyril