1. 第一个 编译器相关编码
- 修改编译的bin目录下的两个文件(idea.exe.vmoptions; idea64.exe.vmoptions)添加字符串:-Dfile.encoding=UTF-8
- 在编译器里面修改项目的编码: Settings … File Encoding
- 设置 项目启动参数
这个可以具体参考这位大佬的文章:点击进行跳转
如有必要:修改Tomcat的配置(server.xml文件)
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8" />
2. 第二个 项目编码
- HTML等网页页面编码
- HTML(这里咱们使用h5的页面格式)
html页面,看你的页面头部(head)是否有
<meta charset="UTF-8">
这个一般默认都有,若是没有,一劳永逸的解决方法是,修改对应的模板页面
- jsp
对于应jsp页面,看页面开头,是否有:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
这个一般编译器也有默认,若是是在没有,则修改jsp的模板页面
在这里多说几句 IntelliJ IDEA的模板功能,是Java开发的一个利器,这个可以花一点时间学习学习,注释模板的添加
这位博友的这边文章写的很不错,学会注释模板的话,以后你就可以进行扩展,你自定义你自己的个性化的界面
- 设置request与response的数据的编码
创建过滤器(EndocingFilter)
package cn.edu.hactcm.Web.filter;
import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import java.io.IOException;
@WebFilter(filterName = "encodeFilter",value = "/*")
public class encodeFilter implements Filter {
public void destroy() {
}
//过滤器
public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
chain.doFilter(req, resp);
resp.setCharacterEncoding("utf-8");
}
public void init(FilterConfig config) {
}
}
- 设置数据库连接的url
jdbc:mysql://localhost:3306/online_exam?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT
- 设置相关的数据库与数据表的编码格式
修改字符集为:UTF-8
修改排序规则:utf8_general_ci