我的代码只是抓取一个网页,然后将其转换为Unicode.
html = urllib.urlopen(link).read()
html.encode("utf8","ignore")
self.response.out.write(html)
Run Code Online (Sandbox Code Playgroud)
但我得到一个UnicodeDecodeError:
Traceback (most recent call last):
File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/webapp/__init__.py", line 507, in __call__
handler.get(*groups)
File "/Users/greg/clounce/main.py", line 55, in get
html.encode("utf8","ignore")
UnicodeDecodeError: 'ascii' codec can't decode byte 0xa0 in position 2818: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)
我认为这意味着HTML包含一些在某处错误形成的Unicode尝试.我可以删除导致问题的任何代码字节而不是出错吗?
上传具有非ASCII字符的文件时,我得到UnicodeEncodeError:
Exception Type: UnicodeEncodeError at /admin/studio/newsitem/add/
Exception Value: 'ascii' codec can't encode character u'\xf8' in position 78: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)
查看完整堆栈跟踪.
我用MySQL和nginx以及FastCGI运行Django 1.2.
这是根据Django Trac数据库修复的问题,但我仍然遇到问题.欢迎任何有关如何修复的建议.
编辑:这是我的图像字段:
image = models.ImageField(_('image'), upload_to='uploads/images', max_length=100)
Run Code Online (Sandbox Code Playgroud) 我得到UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-51: ordinal not in range(128)异常尝试使用string.maketrans在Python.我对以下代码(gist)中的这种错误感到气馁:
# -*- coding: utf-8 -*-
import string
def translit1(string):
""" This function works just fine """
capital_letters = {
u'?': u'A',
u'?': u'B',
u'?': u'V',
u'?': u'G',
u'?': u'D',
u'?': u'E',
u'?': u'E',
u'?': u'Zh',
u'?': u'Z',
u'?': u'I',
u'?': u'Y',
u'?': u'K',
u'?': u'L',
u'?': u'M',
u'?': u'N',
u'?': u'O',
u'?': u'P',
u'?': u'R',
u'?': u'S',
u'?': u'T', …Run Code Online (Sandbox Code Playgroud)