読者です 読者をやめる 読者になる 読者になる

悩み

Django

この一文を追加すれば、一番きれいに解決できるのだが。

Index: django/core/handlers/wsgi.py
===================================================================
--- django/core/handlers/wsgi.py        (revision 7053)
+++ django/core/handlers/wsgi.py        (working copy)
@@ -78,6 +78,7 @@
         self.path = force_unicode(environ['PATH_INFO'])
         self.META = environ
         self.method = environ['REQUEST_METHOD'].upper()
+        self.encoding = environ.get('HTTP_USER_AGENT', '').startswith('DoCoMo') and 'cp932' or None

     def __repr__(self):
         # Since this is called as part of error handling, we need to be very

trunk版では入力のところで自動的にDEFAULT_CHARSETでユニコードにデコードされてしまうので、DoCoMoならばShift_JIS, それ以外ならばUTF-8というサイトが作れない。

  • どのキャリアでもcp932で固定
  • どのキャリアでもutf8で固定
  • 上のパッチを使う
  • http.QueryDictのところでchardetを使う
  • WSGIHandlerに独自のものを使う

どの選択肢も一長一短で悩ましい。