delphi 关于XE10下Indy发送字符串编码的问题


本文整理自网络,侵删。

 
在与硬件对接的过程中,之前用D7环境下的UDPServer.Post发送的指令,硬件可正常识别并正常显示,

后来使用到XE10,重新编译之前的源码,发现所有汉字乱码显示了;

后通过对接收数据发现,实际发送的编码有异常,而且英文与数字都正常,就汉字显示不正常,

唯一可能就是字符编码的问题了

D7环境下发送的是默认的String数据类型

XE10下发送的也同样是String类型,

要解决乱码问题,处理方法就是在XE10环境下,UDPServer.Post时,注意设置一下发送的指令编码

常规发送为:UDPServer.Post(IP,Port,Data);

在xe10下,加上编码格式: UDPServer.Post(IP,Port,Data, IndyTextEncoding(TEncoding.ANSI));

在XE10下共提供7种格式: (经测试 Default发送的指令编码与 ANSI 一样)

IndyTextEncoding(TEncoding.ANSI)

IndyTextEncoding(TEncoding.ASCII)

IndyTextEncoding(TEncoding.BigEndianUnicode)

IndyTextEncoding(TEncoding.Default)

IndyTextEncoding(TEncoding.Unicode)

IndyTextEncoding(TEncoding.UTF7)

IndyTextEncoding(TEncoding.UTF8)

相关阅读 >>

Delphi 调用clipboard 收集剪切板信息

Delphi 实现程序 动态 类名

Delphi tdictionary 泛型如何排序

Delphi 如何在webservice中获取客户端的ip地址

Delphi xe10 麦克风、摄像头操作

Delphi使用spcomm实现串口通信 基础知识

Delphi program name、process id、window handle、process handle 的转换函数

Delphi 实现关闭指定进程,自身防杀

Delphi 读取文件的md5值

Delphi fmx jpg 保存数据库 从数据库读取

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...