gpt4 book ai didi

python - 我如何检查 Python unicode 字符串以查看它*实际上*是正确的 Unicode?

转载 作者:太空狗 更新时间:2023-10-29 21:35:42 25 4
gpt4 key购买 nike

所以我有这个页面:

http://hub.iis.sinica.edu.tw/cytoHubba/

显然,它已经被正确解码了,但是当我尝试将它保存在 postgres 中时,我得到了:

DatabaseError: invalid byte sequence for encoding "UTF8": 0xedbdbf

在那之后数据库变得安静并且拒绝在没有回滚的情况下做任何事情,这将有点难以发布(长话短说)。有没有办法让我检查这是否会在它到达数据库之前发生? source.encode("utf-8") 工作顺利,所以我不确定发生了什么......

最佳答案

在 python 2.x 中有一个bug,它只在 python 3.x 中修复。事实上,这个错误甚至存在于 OS X 的 iconv 中(但不是 glibc 中的)。

这是发生了什么:

Python 2.x 无法将 UTF8 代理项对 [1] 识别为无效(这就是您的字符序列)

应该是所有需要的:

foo.decode('utf8').encode('utf8')

但是由于他们没有修复那个错误,它没有捕获代理对。

在 python 2.x 中尝试这个,然后在 3.x 中尝试:

b'\xed\xbd\xbf'.decode('utf8')

它将在后者中(正确地)抛出一个错误。他们也没有在 2.x 分支中修复它。有关详细信息,请参阅 [2] 和 [3]

[1] https://www.rfc-editor.org/rfc/rfc3629#section-4

[2] http://bugs.python.org/issue9133

[3] http://bugs.python.org/issue8271#msg102209

关于python - 我如何检查 Python unicode 字符串以查看它*实际上*是正确的 Unicode?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3487377/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com