• 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;

  • 相关阅读:
    jQuery基础及选择器
    JavaScript面向对象
    JavaScript操作DOM
    JavaScript Bom对象
    jquery内容
    jQuery基础
    正则表达式
    表单校验
    使用jQuery操作DOM
    jQuery中的动画
  • 原文地址:https://www.cnblogs.com/xwgcxk/p/7239748.html
Copyright © 2020-2023  润新知