Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python进行简单的ascii url编码_Python_Urlencode_Turbogears_Turbogears2 - Fatal编程技术网

使用python进行简单的ascii url编码

使用python进行简单的ascii url编码,python,urlencode,turbogears,turbogears2,Python,Urlencode,Turbogears,Turbogears2,看看这个: import urllib print urllib.urlencode(dict(bla='Ã')) 输出是 bla=%C3%BC 我想要的很简单,我想要ascii而不是utf-8的输出,所以我需要输出: bla=%C3 如果我尝试: urllib.urlencode(dict(bla='Ã'.decode('iso-8859-1'))) 无法工作我所有的python文件都是utf-8编码的: “ascii”编解码器无法对位置0-1中的字符进行编码:序号不在范围128中 在

看看这个:

import urllib
print urllib.urlencode(dict(bla='Ã'))
输出是

bla=%C3%BC
我想要的很简单,我想要ascii而不是utf-8的输出,所以我需要输出:

bla=%C3
如果我尝试:

urllib.urlencode(dict(bla='Ã'.decode('iso-8859-1')))
无法工作我所有的python文件都是utf-8编码的:

“ascii”编解码器无法对位置0-1中的字符进行编码:序号不在范围128中


在生产中,输入是统一编码的。

如果您的输入实际上是UTF-8,并且您希望iso-8859-1作为非ASCII的输出,那么您需要的是:

'ñ'.decode('utf-8').encode('iso-8859-1')

如果您的输入实际上是UTF-8,并且希望iso-8859-1作为非ASCII的输出,那么您需要的是:

'ñ'.decode('utf-8').encode('iso-8859-1')
我希望输出为ascii格式,而不是utf-8格式

这不是ASCII,它没有映射到0x80以上的字符。你说的是ISO-8859-1,或者可能是代码页1252——基于它的Windows编码

'Ã'.decode('iso-8859-1')
这取决于你在源代码中保存字符Ã的编码,不是吗?听起来您的文本编辑器已将其保存为UTF-8。这是一件好事,因为像ISO-8859-1这样的特定于语言环境的编码需要尽快消失

告诉Python您保存的源文件是UTF-8格式的,如下所示:

或者,如果您不想遇到这种麻烦,请使用反斜杠转义:

urllib.quote(u'\u00C3'.encode('iso-8859-1'))    # -> %C3
尽管如此,现代webapp的输入应该使用UTF-8,而不是ISO-8859-1/cp1252

我希望输出为ascii格式,而不是utf-8格式

这不是ASCII,它没有映射到0x80以上的字符。你说的是ISO-8859-1,或者可能是代码页1252——基于它的Windows编码

'Ã'.decode('iso-8859-1')
这取决于你在源代码中保存字符Ã的编码,不是吗?听起来您的文本编辑器已将其保存为UTF-8。这是一件好事,因为像ISO-8859-1这样的特定于语言环境的编码需要尽快消失

告诉Python您保存的源文件是UTF-8格式的,如下所示:

或者,如果您不想遇到这种麻烦,请使用反斜杠转义:

urllib.quote(u'\u00C3'.encode('iso-8859-1'))    # -> %C3

尽管如此,无论哪种方式,现代网络应用程序都应该使用UTF-8作为输入,而不是ISO-8859-1/cp1252。

非常好的工作方式是:

import unicodedata
unicodedata.normalize('NFKD', 'Ã'.decode('UTF-8')).encode('ascii', 'ignore')

非常好的工作方式是:

import unicodedata
unicodedata.normalize('NFKD', 'Ã'.decode('UTF-8')).encode('ascii', 'ignore')
看看:

就你而言:

bla='Ã'
print unidecode(bla)
'A'
这是一个第三方库,可通过以下方式轻松安装:

$ git clone http://code.zemanta.com/tsolc/git/unidecode
$ cd unidecode
$ python setup.py install
看看:

就你而言:

bla='Ã'
print unidecode(bla)
'A'
这是一个第三方库,可通过以下方式轻松安装:

$ git clone http://code.zemanta.com/tsolc/git/unidecode
$ cd unidecode
$ python setup.py install

感谢所有的解决方案。你们都集中到同一点上。 我修改了正确的代码,弄得一团糟

.encode('iso-8859-1') 


返回到。对“iso-8859-1”进行编码,它就能工作。

多亏了所有的解决方案。你们都集中到同一点上。 我修改了正确的代码,弄得一团糟

.encode('iso-8859-1') 

返回到。对“iso-8859-1”进行编码,它就会工作。

包是

Unicode文本的US-ASCII音译。 Python unidecode的改进版本,即Sean M.Burke的Python文本端口::unidecode Perl模块

然后在python中

打印一份。

包装是

Unicode文本的US-ASCII音译。 Python unidecode的改进版本,即Sean M.Burke的Python文本端口::unidecode Perl模块

然后在python中


打印A。

A+tilde转换为ASCII是否为0xC3?我认为不值得重新表述这个标题。ASCII不包含“Ô字符。bla=%C3%BC不包含非ASCII字符。你需要解释你真正想要/需要什么,以及为什么你认为你需要它。@mykhal:U+00C3是拉丁文大写字母A加上波浪号\xC3在ISO-8859-1和cp1252中映射到U+00C3。你想说什么?转换成ASCII的+tilde是0xC3?我认为不值得重新表述这个标题。ASCII不包含“Ô字符。bla=%C3%BC不包含非ASCII字符。你需要解释你真正想要/需要什么,以及为什么你认为你需要它。@mykhal:U+00C3是拉丁文大写字母A加上波浪号\xC3在ISO-8859-1和cp1252中映射到U+00C3。你想说什么?整个webapp已经是utf-8了,但是我尝试通信的基于外部url的webservice无法识别%C3%BC,只能识别%C3。您的解决方案工作正常。整个Web应用程序已经是utf-8,但我尝试通信的基于外部url的Web服务无法识别%C3%BC,只能识别%C3。你的解决方案很好用。