Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.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 Django中的捷克unicode问题_Python_Unicode_Cloudflare - Fatal编程技术网

Python Django中的捷克unicode问题

Python Django中的捷克unicode问题,python,unicode,cloudflare,Python,Unicode,Cloudflare,我有这个网址,它是一个捷克城市的名字。当有人访问该url时,我提取子域并查询城市模型对象。因此,我在Django拥有城市模型,可以通过shell成功查询该城市: >> City.objects.get(name='českébudějovice') >> <City: České Budějovice, Czech Republic> 显然,我没有一个名为“xn--eskbudjovice-deb41c5g”的城市,因此我得到了“城市匹配查询不存在”错误 我

我有这个网址,它是一个捷克城市的名字。当有人访问该url时,我提取子域并查询城市模型对象。因此,我在Django拥有城市模型,可以通过shell成功查询该城市:

>> City.objects.get(name='českébudějovice')
>> <City: České Budějovice, Czech Republic>
显然,我没有一个名为“xn--eskbudjovice-deb41c5g”的城市,因此我得到了“城市匹配查询不存在”错误

我一直在尝试将这个奇怪的子域转换为实际名称,但没有成功。我试过以下方法:

>> s='xn--eskbudjovice-deb41c5g'
>> print s.encode('utf8')
>> xn--eskbudjovice-deb41c5g
我正在使用Cloudflare,我想知道它是否以某种方式将url转换为该表单,而不是将其作为unicode提供给我的服务器

这是一种有效的表示国际域名的方法

您可以使用“idna”编解码器解码字符串:

>>> s = 'xn--eskbudjovice-deb41c5g'
>>> print(s.decode('idna'))
českébudějovice
如果您使用的是Python3,请使用来解码punycode

这是一种有效的表示国际域名的方法

您可以使用“idna”编解码器解码字符串:

>>> s = 'xn--eskbudjovice-deb41c5g'
>>> print(s.decode('idna'))
českébudějovice
如果您使用的是Python3,请使用来解码punycode

$python
Python 2.7.9(默认,2016年8月13日,16:41:35)
>>>'xn--eskbudjovice-deb41c5g'。解码('idna')
u'\u010desk\xe9bud\u011bjovice'
>>>打印'xn--eskbudjovice-deb41c5g'。解码('idna')
českébudějovice
$python
Python 2.7.9(默认,2016年8月13日,16:41:35)
>>>'xn--eskbudjovice-deb41c5g'。解码('idna')
u'\u010desk\xe9bud\u011bjovice'
>>>打印'xn--eskbudjovice-deb41c5g'。解码('idna')
českébudějovice

域名中的编码不是utf8。请参阅。域名中的编码不是utf8。参见。spasibo bratan:)spasibo bratan:)