Delphi XE10 IdTCPClient和IdTCPServer 通讯编码规则写法(Indy 10)(编码乱码)

Posted guorongtao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Delphi XE10 IdTCPClient和IdTCPServer 通讯编码规则写法(Indy 10)(编码乱码)相关的知识,希望对你有一定的参考价值。

Delphi XE10 IdTCPClient和IdTCPServer 通讯编码规则(Indy 10)(编码乱码)

use IdGlobal

IndyTextEncoding:

  • IndyTextEncoding_Default;
  • IndyTextEncoding_OSDefault;
  • IndyTextEncoding_8Bit;
  • IndyTextEncoding_ASCII;
  • IndyTextEncoding_UTF16BE;
  • IndyTextEncoding_UTF16LE;
  • IndyTextEncoding_UTF7;
  • IndyTextEncoding_UTF8;

// 以下是为了向后兼容过去的Indy 10版本

  • enDefault;
  • en7Bit;
  • en8Bit;
  • enUTF8;
  • Indy8BitEncoding
  • IndyASCIIEncoding
  • IndyUTF16BigEndianEncoding
  • IndyUTF16LittleEndianEncoding
  • IndyOSDefaultEncoding
  • IndyUTF7Encoding
  • IndyUTF8Encoding

 

Delphi XE10 示例:

IdTCPClient1.IOHandler.WriteLn(MemoC1.Text,IndyTextEncoding_UTF8);

或者

IdTCPClient1.IOHandler.WriteLn(MemoC1.Text,IndyTextEncoding(encUTF8));

 

IdTextEncodingType :

  • encIndyDefault,
  • encOSDefault,
  • enc8Bit,
  • encASCII,
  • encUTF16BE,
  • encUTF16LE,
  • encUTF7,
  • encUTF8

 

统一设置方式:

//客户端初始化时设置DefStringEncoding
IdTCPClient1.IOHandler.DefStringEncoding := IndyTextEncoding_UTF8;  //IndyTextEncoding(encUTF8)

//服务器Connect时 
AContext.Connection.IOHandler.DefStringEncoding :=IndyTextEncoding_UTF8;  //IndyTextEncoding(encUTF8)

  

  

  

 

创建时间:2020.06.02  更新时间:2020.06.02

 

以上是关于Delphi XE10 IdTCPClient和IdTCPServer 通讯编码规则写法(Indy 10)(编码乱码)的主要内容,如果未能解决你的问题,请参考以下文章

Delphi XE IdTCPClient1 和 IdTCPServer1 数据的发送与接收(indy10)

Delphi XE8 中TIdTCPClient的WriteLn编码变化!

Delphi XE8报错:There is no overloaded version of 'ReadLn' that can be called with these argume

Delphi XE8 中TIdTCPClient的WriteLn编码变化!

delphi indy10 无法接收中文

Delphi XE10,Json 生成和解析,再利用indyhttp控件Post