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 unidac 连接mdb access 数据库

Delphi memo1自动循环上下滚屏

Delphi 取相同字符串 2种方法

Delphi 匹配中文的正则表达式

Delphi 通过memorystream 传递image1数据

Delphi edit只允许输入数字

Delphi gettempdirectory 获取临时文件夹路径

delpni-xe5-android sdk api 层次结构

Delphi 用 gdi+ 给图片添加花边的例子

Delphi强制关闭执行程序(杀进程)

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



打赏

取消

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

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

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

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

评论

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