JSON数据转GBK

hobby_01 2018-06-22 09:15:07
需要把JSON数据部分转成字符串后转GBK编码,不然中文会乱码..请问,怎么转?

void __fastcall TFMain::SaveDD(String yh,String pwd)
{
TStrings *RData = new TStringList();
TStringStream *Stream= new TStringStream();
try {
TJSONObject *Ob = new TJSONObject();
Ob->AddPair(new TJSONPair("SafeTypeID",Xzxh));
Ob->AddPair(new TJSONPair("CarNo",Edt_cph->Text));
Ob->AddPair(new TJSONPair("StartAddress",Edt_cfd->Text));
Ob->AddPair(new TJSONPair("EndAddress",Edt_mmd->Text));
Ob->AddPair(new TJSONPair("UnitNum",Edt_sldw->Text));
String Str_Send = Ob->ToString();
Str_Send = "Data="+Str_Send;
RData->Add(Str_Send);
delete Ob;
String StrUrl = "http://47.104.94.154/GetCall.aspx?UserName=" +yh + "&Password=" + mm + "&Method=Save";
StrUrl = TIdURI::URLEncode(StrUrl);
IdHTTP1->Request->ContentType = "application/x-www-form-urlencoded";
IdHTTP1->Post(StrUrl,RData,Stream);
} catch (...) {
}
delete RData;
delete Stream;
}
...全文
513 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
titan_ysl 2018-06-23
  • 打赏
  • 举报
回复
void UnicodeToGB2312(char* pOut,wchar_t uData) //将宽字符转换成多字符
{
WideCharToMultiByte(CP_ACP,NULL,&uData,1,pOut,sizeof(wchar_t),NULL,NULL);

/* 用这个也行 ,但是这两种方法在安卓下均无效,得自己装入unicode 和 GB2312 编码对应表来转换
setlocale(LC_ALL,""); //设置本地默认Locale
wcstombs(pOut,&uData,sizeof(wchar_t));
setlocale(LC_ALL,"C"); //默认
*/
}

1,316

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧