1. 程式人生 > >導致Web 伺服器返回的漢字亂碼的一個可能性——響應頭的編碼問題

導致Web 伺服器返回的漢字亂碼的一個可能性——響應頭的編碼問題

響應頭的編碼問題導致的漢字亂碼

Web伺服器響應回前端的漢字可能會出現亂碼的問題。導致漢字亂碼的原因有很多種,歸根到底都是出現在編碼格式utf-8上面。
本人手寫的原生程式碼伺服器專案中出現一個漢字亂碼問題。在使用者名稱註冊時,原本希望根據註冊成敗返回漢字提示資訊。

伺服器端註冊程式碼如下:

#定義的註冊函式
def register(env,set_headers):
    status = '200 OK'
    headers = []
    set_headers(status, headers)
    msg = env.get('MSG')
    print
('**************') print(msg) res = do_register(msg) print('**************') print('res=',res) #根據執行具體的註冊函式的返回值,向前端返回提示資訊 if res == 1: return '您已註冊成功,請返回登入頁面登入' else: return '使用者名稱已存在,請返回註冊頁重新輸入!'

然而在執行程式碼後,前臺的返回資訊如下:
在這裡插入圖片描述
返回提示資訊亂碼:
在這裡插入圖片描述
經過反覆核對,並在度孃的幫助下,最終發現問題所在。出錯的程式碼段如下:

def register(env,set_headers):
    status = '200 OK'
    headers = []

headers值為空,導致前端接收後端的中文資訊時不能自動解碼,正確程式碼格式如下:

def register(env,set_headers):
    status = '200 OK'
    headers = [('Content-Type', 'text/html;charset=utf-8')]

更新程式碼後重新執行,執行結果如下:
在這裡插入圖片描述