13,826
社区成员
发帖
与我相关
我的任务
分享
TStringList *ParamStr = new TStringList;
TStringStream *ResponseStream=new TStringStream("",65001);
//...中间代码省略
IdHTTP1->Post(url, ParamStr,ResponseStream);
Memo1->Text=ResponseStream->DataString;
ResponseStream->DataString里面的中文不是乱码了!
解决方法参考自http://blog.sina.com.cn/s/blog_549f50ec01019cgc.html 和http://blog.csdn.net/syndicater/article/details/17302857
TMemoryStream *T_LXBI;
void __fastcall TForm1::FormCreate(TObject *Sender)
{
T_LXBI=new TMemoryStream();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action)
{
T_LXBI->Clear();
delete T_LXBI;
T_LXBI=NULL;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
T_LXBI->Clear(); // 使用前先清空流
IdHTTP1->Get(http,T_LXBI); // 下载文件
// 解决乱码问题的关键点在这里,把下面的这些一个一个的实验,看那个正常
Memo1->Lines->LoadFromStream(T_LXBI);
//Memo1->Lines->LoadFromStream(T_LXBI,TEncoding::UTF8);
//Memo1->Lines->LoadFromStream(T_LXBI,TEncoding::UTF7);
//Memo1->Lines->LoadFromStream(T_LXBI,TEncoding::Unicode);
//Memo1->Lines->LoadFromStream(T_LXBI,TEncoding::Default);
//Memo1->Lines->LoadFromStream(T_LXBI,TEncoding::BigEndianUnicode);
//Memo1->Lines->LoadFromStream(T_LXBI,TEncoding::ASCII);
}