zoukankan      html  css  js  c++  java
  • delphi请求http接口中文乱码问题

    请求http接口的时候参数值是中文乱码:

    http接口一般都是由java,php以及C#开发而成的,乱码的原因也是由于编码的问题,一般传递数据的都是utf8,然后传递的时候都会urlEcode

    那么delphi如何解决这个问题呢?

    请看下面的实例,实例中的“哈哈”二字就是中文:

    procedure TClientForm.Button77Click(Sender: TObject);
    var paramStream: TIdMultiPartFormDataStream;
    vResponse: TStringStream;
    filename, vres: string;
    vList: TStringList;
    jsonstr,signStr,timestamp,sign: string;
    begin
    //生成sign
    timestamp := FormatFloat('#', DateUtils.MilliSecondsBetween(Now, StrToDateTime('1970-1-1')) - 8 * 60 * 60);
    signStr:='schNo=1000066&schRecords='+httpencode(UTF8Encode('哈哈'));
    sign:=MD5.StrMD5(signStr);
    paramStream := TIdMultiPartFormDataStream.Create;
    vResponse := TStringStream.Create('');
    vList := TStringList.Create;
    // paramStream.AddFile('FileInputStream', 'D:1.xlsx', GetMIMETypeFromFile('D:1.xlsx'));

    //paramStream.AddFormField('fileName', UTF8Encode('1.xlsx'));
    paramStream.AddFormField('signature', sign);
    paramStream.AddFormField('schRecords', UTF8Encode('哈哈'));
    paramStream.AddFormField('N', '1');
    IdHTTP1.Post('http连接', paramStream, vResponse);
    vres := (vResponse.DataString); //Utf8ToAnsi

    Memo1.Text := Utf8ToAnsi(vres);
    // ShowMessage(vres);
    end;

  • 相关阅读:
    Word Embedding理解
    几种简单的主题模型(生成模型)
    BTM学习小记
    LDA学习小记
    word2vec训练好的词向量
    java带字符编码编译
    web安全领域常见的攻击方式
    宝塔webhook布置gitee自动同步服务端
    unity3d学习路线
    缩略图含裁剪文件
  • 原文地址:https://www.cnblogs.com/xwgcxk/p/7239748.html
Copyright © 2011-2022 走看看