繁体   English   中英

Python字符串和UTF-8问题

[英]Python string and UTF-8 problems

我正在编写一个脚本,该脚本将使用http GET从我的网站中获取一些数据。

我的问题是我必须将unicode字符传递到网站。

我正在读取包含这些字符的文件,然后尝试产生一个URL以发出请求。

该文件是utf-8编码的,我用它来读取

f = codecs.open("values.txt", encoding='utf-8')

然后我读取文件的第一行,并将值与url连接起来

sUrl = "http://example.com?word="
value = f.readline()
visitUrl = sUrl + value

如果我使用print visitUrl则输出正确。 http://example.com?word

如何在不破坏我的特殊字符的情况下使用visiUrl 我试图将字符串编码为ascii,但不适用于所有字符。

引用网址

import urllib
s = u'Здравей'
urllib.quote(s.encode('utf-8'))
# %D0%97%D0%B4%D1%80%D0%B0%D0%B2%D0%B5%D0%B9

或直接使用urlencode构建网址的查询部分

urllib.urlencode({'data': s.encode('utf-8')})
# 'data=%D0%97%D0%B4%D1%80%D0%B0%D0%B2%D0%B5%D0%B9'

使用urllib.urlencode构建URL,而不是尝试通过串联字符串来构建URL。 URL中的非ASCII字符需要进行URL编码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM