一、中文输出乱码问题由于计算机中的数据都是以二进制形式存储的,因此,当传输文本时,就会发生字符和字节之间的转换。字符与字节之间的转换是通过查码表完成的,将字符转换成字节的过程称为编码,将字节转换成字符的过程称为解码,如果编码和解码使用的码表不一致就会导致乱码问题
1 .创建servletpublicclasschineseservletextendshttp servlet { privatestaticfinallongserialversionuid=1l;/* * @ see http servlet # doget (httpservletrequestrequest,http servlet响应响应)/protectedvoiddoget ) http servlet printwriter out=response.get writer (; out.println (数据; }/* * * @ see http servlet # dopost (httpservletrequestrequest, HttpServletResponse response )/protectedvoiddopost ) ) http htpservletresponseresponse (throwsservletexception, io exception (/todo auto-generatedmethodstubdoget )请求,响应//浏览器测试站点http://localhost :8080/chapter 04/cccc
出现乱码问题
3 .用两种方法解决乱码问题的第一种方法:
将HttpServletResponse配置为使用utf-8编码的response.setcharacterencoding (' tuf-8 ' ); charset=utf-8 ',通知//浏览器使用utf-8解码response.Seth rader (content-type )、) text/html; 第二种方法:
//包含第一种方式的两个功能的response.set content type (' text/html; charset=utf-8 '; 两种方法使用的方法的功能描述传送门
通常为了代码简洁使用第二种方式。
修改上面的代码,然后重试:
publicclasschineseservletextendshttp servlet { privatestaticfinallongserialversionuid=1l;/* * @ see http servlet # doget (httpservletrequestrequest, HttpServletResponse response )/protectedvoiddoget ) http servlet httpservletresponseresponse (throwsservletexception ), ioexception(/解决中文乱码(/方法1 )将HttpServletResponse配置为使用utf-8编码//在浏览器中使用utf-8编码response.setheader (content charset=utf-8 '; //*方法2 * response.set content type (' text/html; charset=utf-8 '; */String data='中国人'; printwriter out=response.get writer (; out.println (数据; }/* * * @ see http servlet # dopost (httpservletrequestrequest, HttpServletResponse response )/protectedvoiddopost ) ) http htpservletresponseresponse (throwsservletexception, io exception (/todo auto-generatedmethodstubdoget )请求,响应//浏览器测试站点http://localhost :8080/chapter 04/cccc
中文乱码问题完美解决!