我有一个简单的jsp页面,希望自己给自己传中文的参数然后显示出来,但是现实出来的是乱码,请问大家怎么解决呢?谢谢先<%@ page contentType="text/html; charset=gb2312" language="java" import="java.net.*" errorPage="" %>
<%
String test = URLDecoder.decode((String)request.getParameter("test"),"gb2312");
if (test == null)
test = "测试";
%>
<a href="test.jsp?test=<%=test%>"><%=test%></a>
<%
String test = URLDecoder.decode((String)request.getParameter("test"),"gb2312");
if (test == null)
test = "测试";
%>
<a href="test.jsp?test=<%=test%>"><%=test%></a>
我就认准一个道理:进去是什么字符集,出来肯定是什么字符集。你把所有涉及字符集的地方,全部设置成一致的,比如Gbk,gb2312,utf-8 绝对不会出错。否则有一个地方不一样就全盘皆输对你这里来说,你想用gb2312的那么你的Jsp内容字符集要用gb2312,jsp文本文件自身字符集也要是gb2312的(windows的默认可是gbk的,小心!).建议最好用utf-8
String test = new String(request.getParameter("test").getBytes("iso-8859-1"),"gb2312");
这样试下呢
改为:<a href="javascript:encodeURI(test.jsp?test= <%=test%>)"> <%=test%> </a>
解决编码一般常用这几种方法
1,先把转换成8859编码,在由8859转换成你想要的编码
String test = new String(request.getParameter("test").getBytes("iso-8859-1"),"gb2312");
2,在发送端和接收方分别进行encodeURI和encode编码和转码
3,使用过虑器,这个是最直接,最有效,最好用的乱码解决方案.
4,建议统一使用UTF-8编码
.......
增加一个
request.getParamter("gbk");