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 \uff5eNotify.pyが送信するメールをUTF-8のマルチパートメッセージではなく、JISのシングルパートに変換するようにしているのだけど、全角チルダ(~)が含まれてると変換の際にエラーが発生していた。もしかすると他の文字もエラーのトリガーになっているのかも。Pythonに詳しい人、ヘルプミー。
# Kuriyamaさん、同じ問題が起こってたりしませんか?
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
ありがとうございます!
早速適用してみます。
Posted by: otsuka : 2006年05月24日 16:39
ググってここにたどりついたのですが、助かりました。
ありがとうございました。
Posted by: junior : 2006年05月26日 22:22