DELPHI INDY - 找不到激活 UTF8 的参数 encoding/decoding
DELPHI INDY - Can not find parameter to activate UTF8 encoding/decoding
我正在使用 Delphi 10.3 并创建了一个 TIdTCPServer
和一个客户端。
我发现像 ÅÄÖ
这样的 Unicode 字符在发送时被改变了。
ContexClient.Connection.IOHandler.DefStringEncoding := IndyTextEncoding_UTF8;
ContexClient.Connection.IOHandler.WriteLn('abcÅÄÖ');
在上面的代码中,我试图用 DefStringEncoding
属性 修复它,但编译器没有找到 IndyTextEncoding_UTF8
.
我不知道如何让它工作。
有什么想法吗?
Indy 的默认编码是 US-ASCII。这可以在运行时使用 Indy 的 IdGlobal
单元中的 GIdDefaultTextEncoding
变量进行更改。例如,您可以将其设置为 encUTF8
。
这就是您看到 non-ASCII 个字符被更改的原因。使用 TIdIOHandler.DefStringEncoding
属性 是一种解决方案。 IndyTextEncoding_UTF8
在 IdGlobal
单元中声明。确保该单位已添加到您的 uses
子句中。
TIdIOHandler.WriteLn()
本身也有一个可选的 AByteEncoding
输入参数。如果是nil
,则使用DefStringEncoding
。如果那也是 nil
,则使用 GIdDefaultTextEncoding
。
我正在使用 Delphi 10.3 并创建了一个 TIdTCPServer
和一个客户端。
我发现像 ÅÄÖ
这样的 Unicode 字符在发送时被改变了。
ContexClient.Connection.IOHandler.DefStringEncoding := IndyTextEncoding_UTF8;
ContexClient.Connection.IOHandler.WriteLn('abcÅÄÖ');
在上面的代码中,我试图用 DefStringEncoding
属性 修复它,但编译器没有找到 IndyTextEncoding_UTF8
.
我不知道如何让它工作。
有什么想法吗?
Indy 的默认编码是 US-ASCII。这可以在运行时使用 Indy 的 IdGlobal
单元中的 GIdDefaultTextEncoding
变量进行更改。例如,您可以将其设置为 encUTF8
。
这就是您看到 non-ASCII 个字符被更改的原因。使用 TIdIOHandler.DefStringEncoding
属性 是一种解决方案。 IndyTextEncoding_UTF8
在 IdGlobal
单元中声明。确保该单位已添加到您的 uses
子句中。
TIdIOHandler.WriteLn()
本身也有一个可选的 AByteEncoding
输入参数。如果是nil
,则使用DefStringEncoding
。如果那也是 nil
,则使用 GIdDefaultTextEncoding
。