DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: xkjdf02
今日帖子: 1
在线用户: 7
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 linlingwei (飞雪) ★☆☆☆☆ -
盒子活跃会员
2021/11/24 15:40:02
标题:
请教IdHttp.Post提交JAVA服务器,中文乱码问题。 浏览:1276
加入我的收藏
楼主: 提交内容中有中文字符,提交格式要求JSON格式,同样的内容如下:
{
    "id": "9920",
    "id_name": "张三同学",
    "sign_no": "",
    "indata": {
        "signIn": {
          "i_no": "123abc",
          "i_str": "open"
        }
    }
}
用postman工具提交没问题,用下面的delphi语句提交就有问题,排查后怀疑是提交时中文字符造成的原因。
IdHTTP1 := TIdHTTP.Create(nil);
  IdSSLIOHandlerSocketOpenSSL1 := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
  IdHTTP1.IOHandler := IdSSLIOHandlerSocketOpenSSL1;
  IdHTTP1.HandleRedirects := True;
  IdHTTP1.Request.ContentType := 'application/json; Charset=UTF-8';
  aEnctryPost :=memo1.Text;
  postStream := TStringStream.Create(aEnctryPost);
  try
    postStream.Position := 0;
    AEnctryRespose := IdHTTP1.Post(url, postStream);
    Memo2.Text:=AEnctryRespose;
  finally
  ....
该如何修改,请赐教。
----------------------------------------------
-
作者:
男 dbyoung (dbyoung) ★☆☆☆☆ -
普通会员
2021/11/24 16:24:03
1楼: 试试:
  postStream := TStringStream.Create(aEnctryPost, TEncoding.UTF8);
  或
  postStream := TStringStream.Create(aEnctryPost, TEncoding.ASCII);
----------------------------------------------
武汉天气不好
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2021/11/24 16:28:26
2楼: 你的中文字符串可能需要编码为 UTF8,也就是1楼说的那种情况。
----------------------------------------------
-
作者:
男 linlingwei (飞雪) ★☆☆☆☆ -
盒子活跃会员
2021/11/24 16:52:35
3楼: @dbyoung @pcplayer :
谢谢两位前辈,问题解决了。
按此在新窗口浏览图片
----------------------------------------------
-
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2021/11/24 17:46:38
4楼: 楼主,问题原因?如何解决的?能不能说一下,让我等也学习点经验。
----------------------------------------------
-
作者:
男 linlingwei (飞雪) ★☆☆☆☆ -
盒子活跃会员
2021/11/24 18:26:36
5楼: @pcplayer:
就是按照dbyoung大侠的方案,一修改就可以了。
----------------------------------------------
-
作者:
男 roadrunner (roadrunner) ★☆☆☆☆ -
盒子活跃会员
2021/11/24 22:59:52
6楼: 就直接IdHTTP1.Post(url, aEnctryPost)就可以了,没那么麻烦
----------------------------------------------
-
作者:
男 slan06 (slan) ▲▲△△△ -
普通会员
2021/12/20 15:57:29
7楼: 创建流时加TEncoding.UTF8
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行62.98828毫秒 RSS