Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi XE2 Indy IRC Unicode_Delphi_Delphi Xe2_Indy_Irc_Codepages - Fatal编程技术网

Delphi XE2 Indy IRC Unicode

Delphi XE2 Indy IRC Unicode,delphi,delphi-xe2,indy,irc,codepages,Delphi,Delphi Xe2,Indy,Irc,Codepages,有可能获得unicode支持吗?现在在IdIRC1PrivateMessage上,我收到了“?”感谢您的帮助 procedure TForm1.IdIRC1PrivateMessage(ASender : TIdContext; const ANicknameFrom, AHost, ANicknameTo, AMessage : unicodestring); begin Memo1.Lines.Add(TimeToStr(Time) + ': ' + ANicknameFrom + '

有可能获得unicode支持吗?现在在IdIRC1PrivateMessage上,我收到了“?”感谢您的帮助

procedure TForm1.IdIRC1PrivateMessage(ASender : TIdContext;
const ANicknameFrom, AHost, ANicknameTo, AMessage : unicodestring);

begin
  Memo1.Lines.Add(TimeToStr(Time) + ': ' + ANicknameFrom + ':  ' + AMessage);
end;

印地版本:10.5.8.0。当我将在mIRC中发送消息时,例如“żźć”,我将在delphi中获得“?”

IRC协议本身不提供任何Unicode规定。mIRC在适用的情况下通过使用UTF-8实现Unicode(请参阅)


TIdIRC
本机不支持Unicode。但是,您可以在连接后将
TIdIOHandler.DefStringEncoding
属性设置为
IndyUTF8Encoding
,或者将全局
IdGlobal.GIdDefaultTextEncoding
变量设置为
encUTF8
来手动告诉
TIdIRC
使用UTF-8编码/解码数据(默认设置为
encASCII
)。但我不能保证它在所有情况下都能正常工作(特别是在CTC/DCC操作期间)。

IRC是一个过时的协议,它不了解语言、字符集和unicode。您能用XMPP或其他现代协议代替吗?“现在在IdIRC1PrivateMessage上我有'?'”你是什么意思?哦,顺便问一下,你说的“unicode”是什么意思“有六种Unicode格式。指定Indy版本也是一件好事。有时它会成为重要信息。也许会得到新的Indy版本:Indy版本:10.5.8.0。当我在mIRC中发送消息时,例如‘żźć’,我会得到”?”在Delphi中,除非他们在XE2发布后对Indy进行了更改,否则您对Indy几乎没有什么欠缺。好吧,他们必须进行更改,因为对二进制数据使用字符串是违反XE4准则的。现在,您可以尝试使用Unicode Delphi或基于UTF-8的CodeTyphon/Lazarus,或者修复Indy的源代码,以添加字符集支持。可能会在带有非默认代码页的独立线程可能会有所帮助,但更可能会混淆Delphi RTL,使其在单个应用程序中具有多个代码页。mIRC是否配置为使用UTF8?将其配置为使用Windows具有的相同字符集…最后一段是关于Indy现在具有的类似问题。我想您应该修复所有t他在Indy IRC上编写代码,将XE2转换的UTF-16字符串修复为IRC的8字节字符串并返回。或者更改库。VisualIRC项目有源代码,但它们发布到unicode Delphi之前,可能对您帮助不大。或者没有。总之,IRC已经过时,您可以选择更好的聊天选项。例如Intranethat remakes或XMPP