我正在使用谷歌地圖http://py-googlemaps.sourceforge.net/顯示一些旅行信息。我發送start_address和end_address通過窗體並計算路由服務器端。django:將unicode地址發送到Google地圖
一切正常,當我使用的地址基本ASCII charaters,但如果我用野生克羅地亞的字符,如「čćšž」我得到「‘ASCII’編解碼器不能編碼位置字符U‘\ u010d’ ...「。
,如果我在shell中使用
from googlemaps import GoogleMaps
directions = GoogleMaps().directions(smart_str(start_address), smart_str(end_address))
爲命令運行良好,而不是當我在網站上通過測試服務器上運行。 start_address和end_address都是類型unicode。
那麼我應該如何形成start_address才能使它與整個unicode正常工作?
編輯:
身邊的一些擺弄後,更這是最後的工作代碼:
from django.shortcuts import render_to_response
from django.utils.encoding import smart_unicode, smart_str
from googlemaps import GoogleMaps
def calculations(request):
if request.method == 'POST':
trip = {}
start_address = smart_str(request.POST.get('start_address'))
end_address = smart_str(request.POST.get('end_address'))
directions = GoogleMaps().directions(start_address, end_address)
trip['length'] = directions['Directions']['Distance']['html']
trip['duration'] = directions['Directions']['Duration']['html']
return render_to_response('index.html', {'trip':trip, }, context_instance = RequestContext(request))
可以考慮的問題關閉:)
ouh,它沒有設置: - /但現在我得到_'ascii'編解碼器無法解碼位置的字節0xc4 ... _ – mislavcimpersak 2012-01-10 14:53:40
請發送一個完整的(「工作」)代碼與文本這不起作用。 – 2012-01-11 06:39:14
感謝Alexander Artemenko的幫助。得到它的工作,並張貼我的完整工作代碼在原來的職位:) – mislavcimpersak 2012-01-11 07:31:51