javaweb网站get方式url传值中文汉字乱码问题
1.服务端接收后转换字符集
URL: hello.jsp?name=你好
Java: name=new String(name.getBytes(“ISO-8859-1”), “utf-8”);
2.使用URLEncoder和URLDecoder进行两次编码和一次解码
jsp:<a href="hello.jsp?name=<%=URLEncoder.encode(URLEncoder.encode("你好")) %>" >你好</a>
html:
<script>
URLEncoder.encode(URLEncoder.encode("你好"));
</script>
后台:java:URLDecoder.decode(request.getParameter("参数名"),"UTF-8");完成解码。
3.修改服务器配置,改变URI字符集
打开 tomcat/conf/server.xml
查找下面这部分,在最后增加一段代码就可以了。
<Connector port="8080" maxHttpHeaderSize="8192"
......
URIEncoding="UTF-8" useBodyEncodingForURI="true"
/>
java解决下载文件中文乱码(IE,谷歌,火狐)
String agent = request.getHeader("USER-AGENT");
try {
if(-1!=agent.indexOf("Chrome")){
//如果是谷歌
fileName=new String(fileName.getBytes("UTF-8"), "ISO8859-1");
}else{
//如果是IE
fileName = URLEncoder.encode(fileName, "UTF8");
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}