Web py 3中的get中文引數問題

2021-04-20 00:20:26 字數 757 閱讀 4017

使用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...