私はこのURL https://českébudějovice.mysite.com/を持っており、それはチェコの都市名です。誰かがそのURLにアクセスすると、サブドメインを抽出してCityモデルオブジェクトをクエリします。だから私は、Djangoのシティモデルをしていると、正常シェルを通して、その都市を照会できます。しかし、今日、私は「市のマッチングクエリが存在しない」と言って、生産上の歩哨に例外を受け取っPython Djangoでのチェコのunicode問題
>> City.objects.get(name='českébudějovice')
>> <City: České Budějovice, Czech Republic>
とURLは次のように示されています:
xn--eskbudjovice-deb41c5g.mysite.com
もちろん、私は名前を「XN - eskbudjovice-deb41c5g」で市を持っていないので、私は取得していますエラー「市のマッチングクエリは存在しません」。
私はその奇妙なサブドメインを実際の名前に変換しようとしていますが、運はありません。私は以下試してみた:
>> s='xn--eskbudjovice-deb41c5g'
>> print s.encode('utf8')
>> xn--eskbudjovice-deb41c5g
私はCloudFlareのを使用していますし、それが何らかの形で私のサーバーにユニコードとしてそれを提供するのではなく、そのフォームへのURLを変換かしら。
ドメイン名のエンコーディングはutf8ではありません。 https://en.wikipedia.org/wiki/Internationalized_domain_nameを参照してください。 – pvg