|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
|
2020/10/10 18:38:10 |
标题: |
|
加入我的收藏 |
楼主: |
请问INDY服务端CONNECT事件里: AContext.Connection.IOHandler.DefStringEncoding := IndyTextEncoding_UTF8();
设定了默认编码为UTF8,现在更换其他TCP组件,但客户端不能修改了。
请问按INDY这样编码,在其他TCP组件里,例如TTCPBlockSocket下, SendString前应该做如何编码,我试着发送之前进行UTF8编码,但客户端没反应,应该是没收到或者编码不正确,客户端没有源码。
求教 IndyTextEncoding_UTF8()在其他组件里如何编码。
----------------------------------------------
- |
作者: |
lsuper (lsuper) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2020/10/10 19:56:34 |
1楼: |
通过 wireshark 等 sniff 抓包对比一下
----------------------------------------------
-
|
作者: |
|
2020/10/10 23:27:55 |
2楼: |
服务端源码有的,服务端发送就是直接进行base64编码发送,但由于设定了AContext.Connection.IOHandler.DefStringEncoding := IndyTextEncoding_UTF8();,收到的并不是base64编码结果,说明indy 通过IndyTextEncoding_UTF8()又进行了编码,但我已经尝试在发送前进行utf8编码了,但显然结果和indy编码结果不同。
----------------------------------------------
-
|
作者: |
lsuper (lsuper) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2020/10/11 9:36:52 |
3楼: |
如果内容主动做了 base64 编码之后已经是 ansi 了,在 utf8 内容不变的意义不大;还是建议抓包看真相
----------------------------------------------
-
|
作者: |
|
2020/10/11 11:33:05 |
4楼: |
只收bytes, 只发bytes, 编码一律自己负责, 不要交给indy
----------------------------------------------
-
|
作者: |
|
2020/10/11 12:57:56 |
5楼: |
roadrunner是的,但现在没办法,客户端没源码,只能根据以前的去改服务端
----------------------------------------------
-
|
作者: |
|
2020/10/11 14:24:48 |
6楼: |
向各位汇报一下,编码问题已经解决,原来是自己多此一举,虽然设定了IndyTextEncoding_UTF8(),但发送的数据并没有进行编码,自己加了utf8编码后反而出了问题。测试了一下,接收到的数据也没有进行utf8编码。
----------------------------------------------
-
|
|