乱码问题一直是困扰我们的事情,所以我从一开始就知道,统一所有的编码格式为UTF-8

数据库MySQL:


[client]
port=3306
default-character-set=utf8

[mysql]

default-character-set=utf8

[mysqld]

character-set-server=utf8


查询配置结果:



mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

mysql>

然后就是JSP界面:



<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>


然后就是Java代码:



/**
* @Desc:获取http请求中的request对象
* @return request
*/
public HttpServletRequest getRequest() throws UnsupportedEncodingException {

HttpServletRequest request = ServletActionContext.getRequest();
request.setCharacterEncoding("utf-8");
return request;
}

/**
* @Desc: 获取http响应中的response对象
* @return response
*/
public HttpServletResponse getResponse() {

HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("text/html;charset=utf-8");
return response;
}


但是我的图片显示不出来:



Failed to load resource: the server responded with a status of 404 (Not Found) http://scun-yun-oos1.oss-cn-shanghai.aliyuncs.com/upload/picture/menu/QQ图片20151209093955.png


我在代码里面打印信息:



picturePath = http://scun-yun-oos1.oss-cn-shanghai.aliyuncs.com/upload/picture/menu/QQ图片20151209093955.png

我JSP界面使用struts2的标签来获取的值:



<s:property value="picturePath"/>


很明显就是struts2的标签有什么问题,这里看到一个类似的问题:


​struts2 jsp <s:property 。 />传值到action出现乱码​

加上escape="false"没有问题了:


<s:property value="picturePath" escape="false"/>