title: UnicodeDecodeError : 'ascii' codec can't decode byte 0xe0 in position 0: ordinal not in range(128)
body: <p>On one of my machines I have the error when I am working with google apps engine or django.</p>
  
  <p>For example:</p>
  
  <ul>
  <li><p>app.yaml</p>
  
  <pre><code>application: demas1252c
  version: 1
  runtime: python
  api_version: 1
  
  
  handlers:
     - url: /images
  static_dir: images
     - url: /css
  static_dir: css
     - url: /js
  static_dir: js
     - url: /.*
  script: demas1252c.py
  </code></pre></li>
  <li><p>demas1252c.py</p>
  
  <pre><code>import cgi
  import wsgiref.handlers
  
  
  from google.appengine.ext.webapp import template
  from google.appengine.ext import webapp
  
  
  class MainPage(webapp.RequestHandler): 
  def get(self):
  values = {'id' : 10}
  
  
  self.response.out.write(template.render('foto.html', values))
  
  
  application = webapp.WSGIApplication([('/', MainPage)], debug = True)
  wsgiref.handlers.CGIHandler().run(application)
  </code></pre></li>
  <li><p>foto.html</p>
  
  <pre><code>&lt;!DOCTYPE html&gt;
  &lt;html lang="en"&gt;
      &lt;head&gt;&lt;/head&gt;
  &lt;body&gt;some&lt;/body&gt;
  &lt;/html&gt;
  </code></pre></li>
  </ul>
  
  <p>error message:</p>
  
  <pre><code>C:\artefacts\dev\project&gt;"c:\Program Files\Google\google_appengine\dev_appserver.py" foto-hosting
  Traceback (most recent call last):
    File "c:\Program Files\Google\google_appengine\dev_appserver.py", line 69, in &lt;module&gt;
      run_file(__file__, globals())
    File "c:\Program Files\Google\google_appengine\dev_appserver.py", line 65, in run_file
      execfile(script_path, globals_)
    File "c:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver_main.py", line 92, in &lt;module&gt;
      from google.appengine.tools import dev_appserver
    File "c:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 140, in &lt;module&gt;
      mimetypes.add_type(mime_type, '.' + ext)
    File "C:\Python27\lib\mimetypes.py", line 344, in add_type
      init()
    File "C:\Python27\lib\mimetypes.py", line 355, in init
      db.read_windows_registry()
    File "C:\Python27\lib\mimetypes.py", line 260, in read_windows_registry
      for ctype in enum_types(mimedb):
    File "C:\Python27\lib\mimetypes.py", line 250, in enum_types
      ctype = ctype.encode(default_encoding) # omit in 3.x!
  UnicodeDecodeError: 'ascii' codec can't decode byte 0xe0 in position 0: ordinal not in range(128)
  </code></pre>
  
  <p>When I am working with static files in django (without gae) I have very similar error (with different stack).</p>
  
  <p>I tried to find the reason of error and added code to mimetypes.py:</p>
  
  <pre><code>print '====='
  print ctype
  ctype = ctype.encode(default_encoding) # omit in 3.x!
  </code></pre>
  
  <p>Then I get next messages in my console:</p>
  
  <pre><code>=====
  video/x-ms-wvx
  =====
  video/x-msvideo
  =====
  рєфшю/AMR
  Traceback (most recent call last):
  </code></pre>
  
  <p>In the registry HKCR/Mime/Database/ContentType/ I have five keys with russian (cyrilic) letters.  But how can I fix this error?</p>