先把这件事解决掉..我已经在utf-8编码下重新编译了eggdrop。如果我在字符串(\u00a7)中编写转义序列,我可以回显utf-8字符,但是由于某些原因,我还不能理解..我无法使用正则表达式将它们与它们的对等物进行比较。
我正在尝试开发一个基于eggdrop的日志脚本,用tcl编写。我已经花了几个小时做研究,但要么没有任何帮助,要么我找错了地方。
用户在机器人所在的irc通道中键入输入字符串§。日志脚本linux side将此字符解释为特殊控制字符(I -think-),并在gedit中将其呈现为一个两行的特殊字符,其外观类似于'FFA7',FF在第一行,A7在第二行,所有这些字符都放在一个框中。
我的正则表达式非常简单:
regexp -all {\u00a7} $text当然,我也尝试过:
regexp -all {\247} $text不幸的是,如前所述..它不起作用。我每次都会得到0,这意味着它永远不会与字符匹配。
对于我所做的所有研究,我一直无法弄清楚eggdrop将字符串发送到tcl脚本的格式。唯一有效的方法是将这个类似方框的字符从gedit直接复制到脚本中。但是如果我不能复制这个字符,那么编码就变得相当不可能了。
对于这个问题..我想知道我在这里做错了什么,是否确实有一种正确的方法来解释机器人发送的字符串,以便我可以正确地将其中的特殊字符转换为html实体。
发布于 2013-02-23 11:22:09
对于那些想知道的人来说,从我的测试看,我似乎已经用简单的方法解决了这个问题:
set text [encoding convertfrom utf-8 $text]而我的其他函数则按照需要替换转义序列。我不知道我在之前的研究中怎么会错过这一点。
https://stackoverflow.com/questions/15036046
复制相似问题