导致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 '用户名已存在,请返回注册页重新输入!'

然而在执行代码后,前台的返回信息如下:
导致Web 服务器返回的汉字乱码的一个可能性——响应头的编码问题_第1张图片
返回提示信息乱码:
在这里插入图片描述
经过反复核对,并在度娘的帮助下,最终发现问题所在。出错的代码段如下:

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')]

更新代码后重新执行,执行结果如下:
在这里插入图片描述

你可能感兴趣的:(web服务器问题)