java web应用 生僻字_Java Web项目中解决中文乱码方法总结

本文总结了Java Web项目中遇到的各种中文乱码问题,包括Servlet响应、请求、JSP页面、数据库及properties文件的乱码处理。讨论了UTF-8与GBK编码的差异,并提供了设置字符编码、修改Tomcat配置、使用native2ascii工具等解决方案。
摘要由CSDN通过智能技术生成

一、了解常识:

1.UTF-8国际编码,GBK中文编码。GBK包含GB2312,即如果通过GB2312编码后可以通过GBK解码,反之可能不成立;

2、web tomcat:默认是ISO8859-1,不支持中文的

3.java.nio.charset.Charset.defaultCharset() 获得平台默认字符编码;

4.getBytes() 是通过平台默认字符集进行编码;

二、引入

在学习任何一门技术时,经常会有初学者遇到中文乱码问题,比如MySQL,是因为在安装时没有设置;而在Servlet中,也会遇到中文乱码问题;

比如:

OutputStream out = response.getOutputStream();

out.write(String );

输出中文时可能会出现乱码;

比如:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { OutputStream out = response.getOutputStream(); String data = "博客"; out.write(data.getBytes("UTF-8"));

输出乱码的问题是程序用UTF-8编码,而浏览器默认用GBK解码了,因此会出现乱码;

三、Servlet相关的几种乱码

1、浏览器调用jsp,html等页面中文显示乱码

此情况需满足两个要求:

(1)文件本身是以utf-8编辑保存的(myEclipse中在properties中鼠标右键选择utf-8)

(2)浏览器用utf-8解析:

(手动)==> 在浏览器中右键选择编码格式为utf-8

(智能)==> 在文件中写入如:   通过标签模拟response头,起到告诉浏览器用utf-8的编码解析

(智能)==> response.setContentType("text/html;charset=UTF-8");起到告诉浏览器用utf-8的编码解析

常用:

2、通过浏览器调用servlet,页面显示乱码。

Servlet乱码分为request乱码和response乱码;

(1)response乱码问题

解决方法:

在网上很有效的解决方法是添加:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值