我想用bottle(bottlepy,bottle.py)對於字典應用程序允許輸入要在URL(GET)中指定像與非ASCII字符bottle.py動態路由URL編碼
http://dictionary_domain/lookup/Thanksgiving
使用
@bottle.route('/lookup/<word>')
def request(word=""):
print(word)
麻煩的是,非ASCII字符URL-encoded(通常情況下,瀏覽器需要照顧這個),而且似乎是bottle.py的解析還是我一般字符編碼設置有問題。 實例:
..lookup /Olivenöl:
"Olivenöl"
..lookup/OL:
Traceback (most recent call last):
File "bottle.py", line 763, in _handle
return route.call(**args)
File "bottle.py", line 1572, in wrapper
rv = callback(*a, **ka)
File "dictionary.py", line 63, in request
print("bottle: \"{}\" requested".format(word))
File "C:\Python32\lib\encodings\cp850.py", line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\x96' in position 10: character maps to <undefined>
在問題編碼到
capital Ö -> %C3%96
minscule ö -> %C3%B6
輸出進行解碼,以字符 ö - > c3b6
,但我不知道如何解決編碼混亂.. 我想這bottle.py需要照顧這。
腳本使用# -*- coding: utf-8 -*-
(也是該文件是UTF-8 BOM)和普通字符串打印到控制檯就好了。
軟件版本: bottle.py: '0.11.4' 和 '0.12-dev的' 的Python 3.2.3(默認情況下,2012年4月11日,7時15分24秒)[MSC v.1500 32位(英特爾)]在Win32
對於其他編碼問題的話,看到的說明在:http://bottlepy.org/docs/dev/ tutorial.html#unicode-issues 詳細信息請參閱http://blog.bottlepy.org/ 郵件列表https://groups.google.com/forum/?fromgroups=#!forum/bottlepy 這似乎s密切相關https://groups.google.com/d/topic/bottlepy/Vqb6fKjFN28/discussion – handle
我已經在上述組中發佈了此問題:https://groups.google.com/forum/? fromgroups =#!論壇/ bottlepy(線程未顯示) – handle
後現在可以在https://groups.google.com/d/topic/bottlepy/w-gqcHt2Yzs/discussion – handle