首先解决这个问题。。我已经用utf-8编码重新编译了eggdrop。如果我在字符串(u00a7
)中编写转义序列,我可以回显utf-8个字符,但由于某种原因,我还不能弄清楚。。我无法将它们与使用regex的同类产品进行比较。
我正在尝试开发一个基于eggdrop的日志记录脚本,该脚本在tcl下编码。我已经花了几个小时只做研究,但要么没有任何帮助,要么我找错了地方。
输入字符串§,是由用户在机器人所在的irc通道中键入的。linux端的日志脚本将此字符解释为一个特殊的控制字符(我认为-),并在gedit中呈现为一个两行特殊字符,其外观看起来像"FFA7",FF在第一行,A7在第二行,所有这些都包含在一个框中。
我的正则表达式很简单:
regexp -all {u00a7} $text
我当然也尝试过:
regexp -all {247} $text
不幸的是,如前所述。。它不起作用。我每次都得到一个0,这意味着它永远不会与字符匹配。
对于我所做的所有研究,我一直无法弄清楚eggdrop将字符串发送到tcl脚本的格式。唯一有效的方法是将这个盒子状的角色从gedit直接复制到脚本中。。但如果我不能复制这个字符,就不可能进行编码。
对于这个问题。。我想知道我做错了什么,如果真的有一种正确的方法来解释机器人发送的字符串,这样我就可以正确地将其中的特殊字符转换为html实体。
对于那些想知道的人来说,从我的测试中可以看出,我已经用简单的方法解决了这个问题:
set text [encoding convertfrom utf-8 $text]
我的其他函数用于替换转义序列。我不知道我在研究的早期怎么会错过这个。