1

最初にこれを邪魔にならないようにするために..私はすでにutf-8エンコーディングでeggdropを再コンパイルしました。エスケープシーケンスをstrings()で記述すると、utf-8文字をエコーアウトできます\u00a7が、何らかの理由でまだ理解できません。正規表現を使用して、対応する文字と比較することはできません。

tclでコーディングされたeggdropに基づくロギングスクリプトを開発しようとしています。私はすでに数時間を研究以外の何もしていませんが、そこに助けがないか、間違った場所を探しています。

入力文字列§は、ボットがオンになっているircチャネルでユーザーが入力します。Linux側のロギングスクリプトは、この文字を特殊制御文字(I -think-)として解釈し、geditで、外観が「FFA7」のように見える2行の特殊文字としてレンダリングし、最初の行にFFがあります。 2番目のA7は、すべてボックスで囲まれています。

私の正規表現は非常に単純です:

regexp -all {\u00a7} $text

もちろん私も試しました:

regexp -all {\247} $text

残念ながら、すでに述べたように..それは動作しません。毎回0を取得します。つまり、文字と一致することはありません。

私が行ったすべての調査では、eggdropが文字列をtclスクリプトに送信している形式を把握できませんでした。唯一の作業は、そのボックスのような文字をgeditからスクリプトに直接コピーすることです。しかし、この文字を複製できないとすると、コーディングがかなり不可能になります。

質問に対して..ボットから送信された文字列を解釈して、その中の特殊文字をhtmlエンティティに正しく変換できる正しい方法があるかどうか、ここで何が間違っているのか疑問に思っています。

4

1 に答える 1

1

疑問に思っている人のために、私のテストから、これを簡単に解決したように見えます:

set text [encoding convertfrom utf-8 $text]

そして、私の他の関数は、エスケープシーケンスを必要に応じて置き換えるために機能します。研究の早い段階でこれをどのように見逃したのかわかりません。

于 2013-02-23T03:22:08.753 に答える