使用get獲得引數, 當引數是中文的時候, web.py會報錯.
出錯的地方一般在:
utils.py
def safestr(obj, encoding='utf-8'):
r"""converts any given object to utf-8 encoded string.
>>> safestr('hello')
'hello'
>>> safestr(u'/u1234')
'/xe1/x88/xb4'
>>> safestr(2)
'2'"""
if isinstance(object, unicode):
return obj.encode('utf-8')
elif isinstance(obj, str):
return obj
else:
return str(obj)
大概是因為web.py沒有正確判斷引數的編碼, 呼叫錯了函式. (正確的情況下應該是safeunicode).
解決辦法:
在主程式的最前面:
import sys
if sys.getdefaultencoding() != 'utf-8':
reload(sys)
sys.setdefaultencoding('utf-8')
-----------------
後記:在處理get引數的時候, 最好用 web.safestr()處理一下.
sql中GET引數的講解
sql select from users where id id limit 0,1 加上1 報錯 可以用 1 或者 23 注釋 這裡單引號和 只是用來注釋 報錯的話需要 id 1 sql select from users where id id limit 0,1 加上1 報錯為 使用 報錯會...
php接收GET方法傳入的中文引數亂碼深究
最近寫了個簡單的頁面,從瀏覽器中傳入中文引數 test.php name 測試 不論怎麼設定utf 8的頁面中都顯示亂碼,google了一把也查到了不少解決辦法,但是問題的原因到底是什麼呢?沒有人深入研究這個問題。出於好奇便要好好查查到底是什麼原因導致,也算漲點經驗!首先先來看下簡單的測試 head...
get請求和post請求引數中文亂碼的解決
首先出現中文亂碼的原因是tomcat預設的編碼方式是 iso 8859 1 這種編碼方式以單個位元組作為乙個字元,而漢字是以兩個位元組表示乙個字元的。post請求引數中文亂碼的解決辦法 對於post請求,請求中問亂碼的兩種解決辦法。1 request.setcharacterencoding utf...