Auf einer meiner Maschinen habe ich den Fehler, wenn ich mit google apps engine oder django arbeite.UnicodeDecodeError: 'Ascii' Codec kann Byte 0xe0 in Position 0 nicht dekodieren: Ordnungszahl nicht im Bereich (128)
Zum Beispiel:
app.yaml
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
demas1252c.py
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)
foto.html
<!DOCTYPE html> <html lang="en"> <head></head> <body>some</body> </html>
Fehlermeldung:
C:\artefacts\dev\project>"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 <module>
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 <module>
from google.appengine.tools import dev_appserver
File "c:\Program Files\Google\google_appengine\google\appengine\tools\dev_appserver.py", line 140, in <module>
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)
Wenn ich mit statischen Dateien in django (ohne gae) arbeite ich sehr ähnliche Fehler (mit unterschiedlichen Stack).
Ich habe versucht, den Grund des Fehlers zu finden und den Code mimetypes.py hinzugefügt:
print '====='
print ctype
ctype = ctype.encode(default_encoding) # omit in 3.x!
Dann bekomme ich in meiner Konsole nächsten Nachrichten:
=====
video/x-ms-wvx
=====
video/x-msvideo
=====
рєфшю/AMR
Traceback (most recent call last):
in der Registrierung HKCR/Mime/Database/ContentType/Ich habe fünf Schlüssel mit russischen (cyrilic) Buchstaben. Aber wie kann ich diesen Fehler beheben?
Was ist der Wert von "default_encoding", im Moment scheint es, dass es etwas ist, das nicht cyrilic konvertieren kann, UTF-8 hier sollte wahrscheinlich den Fehler beheben. –
ascii. Ich habe versucht, es in utf-8 zu ändern, aber ich bekomme Fehler "UnicodeDecodeError: 'utf8' Codec kann Byte 0xef in Position 0 nicht dekodieren: ungültiges Fortsetzungsbyte". Wie auch immer, ich entferne diese Schlüssel aus der Registrierung und der Fehler ist verschwunden. – demas
Dies ist ein Fehler mimetype.py änderte den Python-Code an dieser URL http://bugs.python.org/review/9291/diff/1663/Lib/mimetypes.py –