Sta*_*kis 7 python postgresql unicode
所以我有这个页面:
http://hub.iis.sinica.edu.tw/cytoHubba/
显然它是各种各样的搞砸了,因为它被正确解码但是当我尝试将它保存在postgres中时,我得到:
DatabaseError: invalid byte sequence for encoding "UTF8": 0xedbdbf
Run Code Online (Sandbox Code Playgroud)
数据库在此之后吵了起来并拒绝做任何事情而没有回滚,这将有点难以发布(长篇故事).有没有办法让我检查一下它是否会在它到达数据库之前发生?source.encode("utf-8")顺利运行,所以我不确定发生了什么......
python 2.x中有一个错误,它只是固定的python 3.x. 事实上,这个错误甚至在OS X的iconv中(但不是glibc).
这是发生了什么:
Python 2.x无法识别UTF8代理对[1]无效(这是你的字符序列)
这应该是所需要的:
foo.decode('utf8').encode('utf8')
Run Code Online (Sandbox Code Playgroud)
但是由于这个bug他们没有修复,它没有捕获代理对.
在python 2.x然后在3.x中尝试:
b'\xed\xbd\xbf'.decode('utf8')
Run Code Online (Sandbox Code Playgroud)
它会在后者中引发错误(正确).他们也没有在2.x分支中修复它.有关详细信息,请参阅[2]和[3]
[1] http://tools.ietf.org/html/rfc3629#section-4
[2] http://bugs.python.org/issue9133
[3] http://bugs.python.org/issue8271#msg102209
归档时间: |
|
查看次数: |
4286 次 |
最近记录: |