zoukankan      html  css  js  c++  java
  • 关于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)

  • 相关阅读:
    nuget
    C#枚举中使用Flags特性
    情感分析
    docker
    core部署
    脱壳系列_2_IAT加密壳_详细分析(含脚本)
    安全公司-* * * *-面试题:_ 安卓逆向分析分享
    18_ShadowWalker
    17_页面异常接管
    16_TLB与流水线
  • 原文地址:https://www.cnblogs.com/jieling/p/6056626.html
Copyright © 2011-2022 走看看