#9370: UnicodeDecodeError when serving binary static files through 
GZipMiddleWare
-------------------------------------+--------------------------------------
          Reporter:  kikko           |         Owner:  kkubasik
            Status:  reopened        |     Milestone:  1.1     
         Component:  Core framework  |       Version:  1.0     
        Resolution:                  |      Keywords:          
             Stage:  Accepted        |     Has_patch:  0       
        Needs_docs:  0               |   Needs_tests:  0       
Needs_better_patch:  0               |  
-------------------------------------+--------------------------------------
Changes (by niksite):

  * status:  closed => reopened
  * resolution:  invalid =>

Comment:

 I have this reproduced with latest TRUNK:

 [16:25 /home/niksite/webapps/django/datamining]$ ./manage.py runserver
 Validating models...
 0 errors found

 Django version 1.1 beta 1 SVN-10982, using settings 'datamining.settings'
 Development server is running at http://127.0.0.1:8000/
 Quit the server with CONTROL-C.
 Traceback (most recent call last):
   File "/home/niksite/lib/site-python/django/core/servers/basehttp.py",
 line 278, in run
     self.result = application(self.environ, self.start_response)
   File "/home/niksite/lib/site-python/django/core/servers/basehttp.py",
 line 636, in __call__
     return self.application(environ, start_response)
   File "/home/niksite/lib/site-python/django/core/handlers/wsgi.py", line
 245, in __call__
     response = middleware_method(request, response)
   File "/home/niksite/lib/site-python/django/middleware/gzip.py", line 16,
 in process_response
     if response.status_code != 200 or len(response.content) < 200:
   File "/home/niksite/lib/site-python/django/http/__init__.py", line 365,
 in _get_content
     return smart_str(''.join(self._container), self._charset)
   File "/home/niksite/lib/site-python/django/utils/encoding.py", line 119,
 in smart_str
     return s.decode('utf-8', errors).encode(encoding, errors)
   File "/usr/lib/python2.5/encodings/utf_8.py", line 16, in decode
     return codecs.utf_8_decode(input, errors, True)
 UnicodeDecodeError: 'utf8' codec can't decode byte 0x89 in position 0:
 unexpected code byte
 [12/Jun/2009 16:26:27] "GET /media/images/white.png HTTP/1.0" 500 1162


 By the way, the following error is produced if gzip-middleware is
 disabled:

 Traceback (most recent call last):
   File "/home/niksite/lib/site-python/django/core/servers/basehttp.py",
 line 278, in run
     self.result = application(self.environ, self.start_response)
   File "/home/niksite/lib/site-python/django/core/servers/basehttp.py",
 line 636, in __call__
     return self.application(environ, start_response)
   File "/home/niksite/lib/site-python/django/core/handlers/wsgi.py", line
 245, in __call__
     response = middleware_method(request, response)
   File "/home/niksite/lib/site-python/django/middleware/cache.py", line
 91, in process_response
     patch_response_headers(response, timeout)
   File "/home/niksite/lib/site-python/django/utils/cache.py", line 108, in
 patch_response_headers
     response['ETag'] = '"%s"' %
 md5_constructor(response.content).hexdigest()
   File "/home/niksite/lib/site-python/django/http/__init__.py", line 365,
 in _get_content
     return smart_str(''.join(self._container), self._charset)
   File "/home/niksite/lib/site-python/django/utils/encoding.py", line 119,
 in smart_str
     return s.decode('utf-8', errors).encode(encoding, errors)
   File "/usr/lib/python2.5/encodings/utf_8.py", line 16, in decode
     return codecs.utf_8_decode(input, errors, True)
 UnicodeDecodeError: 'utf8' codec can't decode byte 0x89 in position 0:
 unexpected code byte
 [12/Jun/2009 16:28:37] "GET /media/images/white.png HTTP/1.0" 500 1319

 With cache-middleware disabled I see no errors:
 [12/Jun/2009 16:29:31] "GET /media/images/white.png HTTP/1.0" 200 4233

-- 
Ticket URL: <http://code.djangoproject.com/ticket/9370#comment:4>
Django <http://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to django-updates@googlegroups.com
To unsubscribe from this group, send email to 
django-updates+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to