【发布时间】:2013-06-22 22:52:19
【问题描述】:
是否有可能获得 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 中发送消息时,例如“żźć”,我将收到“???”在德尔福中
【问题讨论】:
-
IRC 是一个过时的协议,它也不知道语言、字符集和 unicode。 en.wikipedia.org/wiki/IRC#Character_encoding你能用 XMPP 或其他现代协议代替吗?
-
“现在在 IdIRC1PrivateMessage 我有'?'”你是什么意思?哦,顺便说一句,“unicode”是什么意思?有六种 Unicode 格式。指定 Indy 版本也是一件好事。有时它会成为重要的信息。并且可能会获得新的 Indy 版本:indyproject.org/Sockets/Download/Files/Indy10.EN.aspx
-
印地版:10.5.8.0。当我将在 mIRC 中发送消息时,例如“żźć”,我将收到“???”在德尔福中
-
根据indyproject.org/docsite/html/!!MEMBEROVERVIEW_TIdIRC.html 判断,您对 Indy 几乎没有不足,除非他们在 XE2 发布后对其进行了更改。好吧,他们将不得不改变这一点,因为它使用字符串作为二进制数据是违反 XE4 准则的。现在你可以尝试使用 pre-Unicode Delphi 或基于 UTF-8 的 CodeTyphon/Lazarus 或修复 Indy 的源代码以添加字符集支持。也许将 IRC 生成到具有非默认代码页的单独线程中会有所帮助,但更可能会使 Delphi RTL 在单个应用程序中拥有多个代码页。
-
mIRC 是否配置为使用 UTF8?将其配置为使用与您的 Windows 相同的字符集...synapse.ararat.cz/doku.php/public:howto:d2009 的最后一段是关于 Indy 现在遇到的类似问题。我想您应该修复 Indy IRC 上的所有代码,以将 XE2 转换的 UTF-16 字符串修复为 IRC 的 8 字节字符串并返回。或更改库。 VisualIRC 项目有源代码,但它们是为预 unicode Delphi 发布的,可能对您没有什么帮助。或不。不管怎样,IRC 已经过时了,你可以选择更好的聊天选项。像 IntranetChat 翻拍或 XMPP
标签: delphi delphi-xe2 indy irc codepages