Fork me on GitHub

JSP页面出现乱码

Jsp文件中会出现下面所示的编码指定方式:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<meta http-equiv=“Content-Type” content=“text/html; charset=UTF-8″>

Meta标签中的charset是在contentType未指定编码时采用的默认编码格式

Tomcat读取JSP文件时采用的编码

pageEncoding="utf-8" --该jsp文件自身采用的编码格式,也就是告诉服务器使用什么编码翻译jsp文件成java文件

Tomcat返回响应时采用的编码

contentType="text/html;charset=utf-8"服务器发送浏览器的数据类型和内容编码。其中charset="utf-8"--用来指定Tomcat返回响应时采用的编码,也是post方式提交参数的编码方式

浏览器显示HTML时采用的编码

浏览器的编码格式的设置

Get提交乱码

浏览器URL栏中地址后面直接?传参数,Controller用RequestParam接收参数出现乱码。

解决办法:修改tomcat默认URI编码(ISO-8859-1)方法,修改tomcat根目录的conf下的server.xml,Connector元素添加URIEncoding="UTF-8"属性即可解决。

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" 
  URIEncoding="UTF-8" 
  redirectPort="8443" />

Post提交乱码

jsp中post表单的编码由pageEncoding和contentType参数决定,以pageEncoding为准,如果没有pageEncoding则以contentType为准,如果没有contentType以Meta标签中的charset为准,都没有则以ISO-8859-1编码

入库乱码

查看日志接受时中文,入库后库中为乱码。vi /etc/my.ini修改如下配置

[mysql]
#设置mysql客户端默认字符集
default-character-set=utf8

[mysqld]
#服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8

[client]
default-character-set=utf8

参考

posted @ 2018-07-16 16:18  秋夜雨巷  阅读(3824)  评论(0编辑  收藏  举报