|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
|
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 .... 该如何修改,请赐教。
----------------------------------------------
- |
作者: |
|
2021/11/24 16:24:03 |
1楼: |
试试: postStream := TStringStream.Create(aEnctryPost, TEncoding.UTF8); 或 postStream := TStringStream.Create(aEnctryPost, TEncoding.ASCII);
----------------------------------------------
武汉天气不好
|
作者: |
|
2021/11/24 16:28:26 |
2楼: |
你的中文字符串可能需要编码为 UTF8,也就是1楼说的那种情况。
----------------------------------------------
-
|
作者: |
|
2021/11/24 16:52:35 |
3楼: |
@dbyoung @pcplayer : 谢谢两位前辈,问题解决了。
----------------------------------------------
-
|
作者: |
|
2021/11/24 17:46:38 |
4楼: |
楼主,问题原因?如何解决的?能不能说一下,让我等也学习点经验。
----------------------------------------------
-
|
作者: |
|
2021/11/24 18:26:36 |
5楼: |
@pcplayer: 就是按照dbyoung大侠的方案,一修改就可以了。
----------------------------------------------
-
|
作者: |
|
2021/11/24 22:59:52 |
6楼: |
就直接IdHTTP1.Post(url, aEnctryPost)就可以了,没那么麻烦
----------------------------------------------
-
|
作者: |
|
2021/12/20 15:57:29 |
7楼: |
创建流时加TEncoding.UTF8
----------------------------------------------
-
|
|