项目部署在服务器url乱码,彻底解决项目中的中文乱码问题

本文详细阐述了如何解决Web项目在项目内配置、Tomcat/JVM设置以及数据库配置中遇到的中文乱码问题。通过调整web.xml的过滤器、设置前端页面和前后端交互的编码格式、修改Tomcat的JVM参数以及配置数据库的字符集,确保项目全程使用UTF-8编码,从而避免乱码现象。

在 Web 项目中,由于各种诸如前后端或者项目与数据库编码不一致等原因都会造成中文乱码的问题,本文介绍了在项目中保持编码一致的方式,解决乱码的问题。

1. 项目内配置

1.1 web.xml 配置过滤器

web.xml 是项目中配置文件的起始部分,为了保险,应该在第一个 filter 里配置编码,配置方式如下:

1234567891011121314151617

encoding-filter

org.springframework.web.filter.CharacterEncodingFilter

encoding

UTF-8

forceEncoding

true

encoding-filter

/*

1.2 前端页面

如果你的前端页面采用 JSP 或者 VM,则应设置页面的编码格式为 UTF-8 的形式。

1.3 前后端交互

对于前后端交互的方式也可设置编码格式,对于前端向后段传输数据时,可以设置 http 的 header 请求方式:

1

Content-Type: text/html; charset=utf-8

如果你是采用 JQuery 中 ajax 的方式提交给服务端,则应该如下方式设置请求:

1

Content-Type: application/json; charset="utf-8"

服务端返回数据给前端,如果是采用 html 的形式:

1

response.setContentType("text/html;charset=utf-8");

如果是采用 JSON 的形式:

1

response.setContentType("application/json;charset=utf-8");

2. Tomcat/JVM 配置

如果你发现前端页面或者数据库的编码显示都正常,但是 System.out.println() 输出时会有乱码,则有可能是容器(Tomcat)中配置 JVM 的参数有问题,只需要在 Tomcat 的配置文件中在 JVM 参数 JAVA_OPTS 或者 CATALINA_OPTS 中加上:

1

-Dfile.encoding=UTF-8

使得 JVM 也以 UTF-8 的方式编码。

3. 数据库配置

3.1 数据库配置文件

当你的前端页面和后台服务器中都解决了编码问题,但是插入数据库或者读取数据库时有问题,就应该考虑数据库的编码方式。对于 MySql 数据库而言,首先找到安装文件 my.ini,设置数据库本身的编码:

12345

[client]default-character-set=utf8在[mysqld]下添加character-set-server=utf8

重启 MySql 即可生效,可以以如下的方式查看 MySql 的编码方式:

1

mysql> show variables like "%char%";

3.2 查询语句

对于在项目中配置的数据库 URL,这是数据库与你的项目交互的编码方式,也要设置编码:

1

jdbc:mysql://XX:3306/XX?useUnicode=true&characterEncoding=UTF-8

4. 总结

如果你的项目中出现了编码问题,正常情况下不会逃出以上三个部分,解决了恶心的编码问题,以后都会有乱码的困扰啦!

以上内容就是彻底解决项目中的中文乱码问题的全部内容了,谢谢你阅读到了这里!

Author: zhaoyh

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值