将mIRC颜色代码嵌入到C#文字中?

我正在使用C#中的一个简单的irc bot,我无法弄清楚如何将粗体/颜色等典型的mirc控制代码嵌入到字符串文字中。

有人能指出我如何做到这一点?

这里描述了 mIRC颜色代码格式。 我猜你问的是如何在字符串中嵌入^ C.

这被称为Caret表示法 。 根据C0和C1控制代码 , ^ C是:

'\x03' 

嵌入字符串:

 "blabla \x035,12to be colored text and background\x03 blabla" 

我创建一个枚举并为它们分配控制代码的hex值。

 enum ColorCode { White = 0, /**< White */ Black = 1, /**< Black */ DarkBlue = 2, /**< Dark blue */ DarkGreen = 3, /**< Dark green */ Red = 4, /**< Red */ DarkRed = 5, /**< Dark red */ DarkViolet = 6, /**< Dark violet */ Orange = 7, /**< Orange */ Yellow = 8, /**< Yellow */ LightGreen = 9, /**< Light green */ Cyan = 10, /**< Cornflower blue */ LightCyan = 11, /**< Light blue */ Blue = 12, /**< Blue */ Violet = 13, /**< Violet */ DarkGray = 14, /**< Dark gray */ LightGray = 15 /**< Light gray */ }; enum ControlCode { Bold = 0x02, /**< Bold */ Color = 0x03, /**< Color */ Italic = 0x09, /**< Italic */ StrikeThrough = 0x13, /**< Strike-Through */ Reset = 0x0f, /**< Reset */ Underline = 0x15, /**< Underline */ Underline2 = 0x1f, /**< Underline */ Reverse = 0x16 /**< Reverse */ }; 

在我的Python IRC机器人中,我可以使用\ x02sometext \ x02大胆地在irssi中显示,它显示如下:

 this is \x02some text\x02 

这是一些文字

至于颜色,我相信你正在寻找\ x03AA,BB,其中A是前景色,B是背景色(你在Ctrl + K后键入的内容)。 不过,肯定不是100%。 尝试使用telnet连接IRC客户端,并检查使用Ctrl + K时mIRC执行的操作。

您不太可能在IRC客户端之间获得标准的内聚行为…… ANSI转义码由更多像irssi这样的老式主流Unix客户端处理,而mIRC有时会做自己的事情。

这可能取决于我正在使用的特定聊天库(ChatSharp),但我无法获得当前接受的工作答案。 我最终得到的是:

 channel.SendMessage((char)3 + "5,12hello");