gpt4 book ai didi

python - 有没有一种简单的方法可以使 unicode 在 python 中工作?

转载 作者:太空狗 更新时间:2023-10-29 17:36:00 24 4
gpt4 key购买 nike

我正在尝试处理 python 2.7.2 中的 unicode。我知道有 .encode('utf-8') 东西,但是有 1/2 的时间我添加它时出现错误,有 1/2 的时间我不添加它我收到错误。

有什么方法可以告诉 python - 我认为这是一种最新的现代语言,只对字符串使用 unicode 而不是让我不得不用 .encode('utf-8' ) 东西?

我知道...python 3.0 应该可以做到这一点,但我不能使用 3.0,而且 2.7 也不是那么旧...

例如:

url = "http://en.wikipedia.org//w/api.php?action=query&list=search&format=json&srlimit=" + str(items) + "&srsearch=" + urllib2.quote(title.encode('utf-8'))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 19: ordinal not in range(128)

更新如果我从所有代码中删除所有 .encode 语句,并将 # -*- coding: utf-8 -*- 添加到文件顶部,就在#!/usr/bin/python 然后我得到以下内容,就像我没有添加 # -*- coding: utf-8 -*- 在全部。

/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib.py:1250: UnicodeWarning: Unicode equal comparison failed to convert both arguments to Unicode - interpreting them as being unequal
return ''.join(map(quoter, s))
Traceback (most recent call last):
File "classes.py", line 583, in <module>
wiki.getPage(title)
File "classes.py", line 146, in getPage
url = "http://en.wikipedia.org/w/api.php?action=query&prop=revisions&format=json&rvprop=content&rvlimit=1&titles=" + urllib2.quote(title)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/urllib.py", line 1250, in quote
return ''.join(map(quoter, s))
KeyError: u'\xf1'

我没有手动输入任何字符串,而是从网站解析 HTML 和 json。所以脚本/字节流/无论它们是什么,都是由 python 创建的。

更新 2 我可以移动错误,但它只会不断出现在新的地方。我希望 python 会成为一个有用的脚本工具,但看起来在 3 天不走运之后我会尝试一种不同的语言。很遗憾,python 预装在 osx 上。我已将修复我发布的错误实例的答案标记为正确。

最佳答案

这是一个非常古老的问题,但只想添加一个部分建议。虽然我同情 OP 的痛苦——我自己也经历过很多痛苦——但这里有一个(部分)答案可以让事情变得“更容易”。将它放在任何 Python 2.7 脚本的顶部:

从 __future__ 导入 unicode_literals

这至少会确保您自己的文字字符串默认为 unicode 而不是 str。

关于python - 有没有一种简单的方法可以使 unicode 在 python 中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12556839/

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