我尝试将TJSONObject类与Unicode字符一起使用,但是在解析后,我得到的是????而不是原始文本。

简单的问题是:

UnicodeString doc = L"{\"alias\":\"Test ЮРИСЛАВ\"}";
ShowMessage(doc);
TJSONObject* jo=new TJSONObject();
jo->Parse(BytesOf(doc), 0);
ShowMessage(jo->ToString());


第一个ShowMessage正确显示文本:ЮРИСЛАВ
但在解析后,第二个ShowMessage将显示????而不是ЮРИСЛАВ

我做错了什么?

最佳答案

更改为以下内容:

jo = (TJSONObject*) TJSONObject::ParseJSONValue(TEncoding::UTF8::GetBytes(doc), 0);


您应该在解析之前将Unicode文本转换为UTF8。

关于json - 使用TJSONObject解析Unicode文本返回'????',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35359388/

10-09 01:19