[英]How to handle Unicode (non-ASCII) characters in Python?
我正在使用Python编程,并且正在通过urllib2
库从网页中获取信息。 问题在于该页面可以为我提供非ASCII字符,例如'ñ'
, 'á'
等。在urllib2
获得此字符的那一刻,它会引发一个异常,如下所示:
File "c:\Python25\lib\httplib.py", line 711, in send
self.sock.sendall(str)
File "<string>", line 1, in sendall:
UnicodeEncodeError: 'ascii' codec can't encode character u'\xf1' in position 74: ordinal not in range(128)
我需要处理那些字符。 我的意思是,我不想处理异常,而是继续执行程序。 有没有办法(例如,我不知道这是不是很愚蠢)使用其他编解码器而不是ASCII? 因为我必须使用这些字符,所以将它们插入数据库等。
您只需从套接字读取一组字节。 如果您想要一个字符串,则必须对其进行解码:
yourstring = receivedbytes.decode("utf-8")
(替换为utf-8
使用的任何编码)
然后,您必须执行相反的操作以将其发送回:
outbytes = yourstring.encode("utf-8")
您可能想研究使用实际的解析库来查找此信息。 例如, lxml
已经使用声明的字符集解决了Unicode编码/解码问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.