gpt4 book ai didi

python - 如何对汉字进行URL编码?

转载 作者:太空宇宙 更新时间:2023-11-03 14:10:30 26 4
gpt4 key购买 nike

我使用以下代码对参数列表进行编码:

params['username'] = user
params['q'] = q
params = urllib.quote(params)

但是当q等于香港时,它就不起作用了。返回以下错误:

'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)

我该如何解决?

最佳答案

看来您正在使用 Python 2+。

因为你的问题不够明确,我提供一个正常的解决方法。

这里有两个修复它的建议:

  • 在文件前添加# encoding: utf-8
  • 在调用quote
  • 之前将汉字编码为utf-8

例子如下:

 # encoding: utf-8

import urllib


def to_utf8(text):
if isinstance(text, unicode):
# unicode to utf-8
return text.encode('utf-8')
try:
# maybe utf-8
return text.decode('utf-8').encode('utf-8')
except UnicodeError:
# gbk to utf-8
return text.decode('gbk').encode('utf-8')


if __name__ == '__main__':
# utf-8 # utf-8 # unicode # gdk
for _text in ('香港', b'\xe9\xa6\x99\xe6\xb8\xaf', u'\u9999\u6e2f', b'\xcf\xe3\xb8\xdb'):
_text = to_utf8(_text)
print urllib.quote(_text)

关于python - 如何对汉字进行URL编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38600436/

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