昨天在做Pager Tag Library分页时碰到了乱码.
本人
jsp utf-8
java utf-8
mystl utf-8
spring2已经过滤所有的为utf-8
在后台做页面分析以后,发现原来Pager Tag Library默认编码是iso-8859-1
于是打开了Pager Tag Library的源码包,照网上改了一下com.jsptags.navigation.pager.PagerTag
将其中的一段改为如下了:(注:csdn上已经有改好的包了.大家可以下载.)
final void addParam(String name, String value) {
if (value != null) {
// name = java.net.URLEncoder.encode(name,"utf-8");
// value = java.net.URLEncoder.encode(value,"utf-8");
uri.append(params == 0 ? '?' : '&').append(name).append('=')
.append(value);
params++;
} else {
String[] values = pageContext.getRequest().getParameterValues(name);
if (values != null) {
// name = java.net.URLEncoder.encode(name,"utf-8");
for (int i = 0, l = values.length; i < l; i++) {
// value = java.net.URLEncoder.encode(values[i],"utf-8");
uri.append(params == 0 ? '?' : '&').append(name)
.append('=').append(values[i]);
params++;
}
}
}
}
重新打包好以后,发现java里sql没有乱码了,mysql里出现了乱码.
jdbc:mysql://xxx.xxx.xxx.xxx3306/webManageSystem?characterEncoding=utf-8
修改连接url以后,正常.