2006年05月19日

Web.Dev | trac チケットの更新が記録されない (2)

先日tracのチケット更新メールが届かないことがあると書いたけど、tracのログを仕込んでおいた結果、原因が分かりました。
Trac[web_ui] ERROR: Failure sending notification on creation of ticket #650: ISO-2022-JP encoding error: invalid character \uff5e
Traceback (most recent call last):
  File "/usr/lib/python2.3/site-packages/trac/ticket/web_ui.py", line 144, in _do_create
    tn.notify(ticket, newticket=True)
  File "/usr/lib/python2.3/site-packages/trac/Notify.py", line 214, in notify
    NotifyEmail.notify(self, ticket.id, subject)
  File "/usr/lib/python2.3/site-packages/trac/Notify.py", line 108, in notify
    Notify.notify(self, resid)
  File "/usr/lib/python2.3/site-packages/trac/Notify.py", line 47, in notify
    self.send(to)
  File "/usr/lib/python2.3/site-packages/trac/Notify.py", line 335, in send
    NotifyEmail.send(self, rcpt, hdrs)
  File "/usr/lib/python2.3/site-packages/trac/Notify.py", line 129, in send
    body = unicode(body, 'utf-8').encode('japanese.c.iso-2022-jp')
UnicodeError: ISO-2022-JP encoding error: invalid character \uff5e
Notify.pyが送信するメールをUTF-8のマルチパートメッセージではなく、JISのシングルパートに変換するようにしているのだけど、全角チルダ(~)が含まれてると変換の際にエラーが発生していた。もしかすると他の文字もエラーのトリガーになっているのかも。

Pythonに詳しい人、ヘルプミー。

# Kuriyamaさん、同じ問題が起こってたりしませんか?
Posted by otsuka : 19:25 | Comment (4) | Trackback (0)
Comment

うー、そう来たか。

\uFF5E って、変換マップによっては ISO-2022-JP には変換できないのよね。

http://ja.wikipedia.org/wiki/%E3%83%86%E3%82%A3%E3%83%AB%E3%83%87

辺の話。途中で置換かませるか、コンバータにその MS 対策なマップがあればそれを使う、という形になるかと思います。

うちもたぶん困ることになっているはずなので、ちとやってみます。

Posted by: kuriyama : 2006年05月23日 15:52

やっぱり Python わからーん。

というわけで強引に対応してみました。名前の URL の所に置いてあります。

Posted by: kuriyama : 2006年05月24日 16:33

ありがとうございます!
早速適用してみます。

Posted by: otsuka : 2006年05月24日 16:39

ググってここにたどりついたのですが、助かりました。
ありがとうございました。

Posted by: junior : 2006年05月26日 22:22









名前、アドレスを登録しますか?