encoding问题啦
public static String GB2Unicode(String str) {
try {
return new String(str.getBytes("ISO8859_1"), "gb2312");
}
catch (UnsupportedEncodingException uee) {
return str;
}
}
public static String GB2Unicode(String str) {
try {
return new String(str.getBytes("ISO8859_1"), "gb2312");
}
catch (UnsupportedEncodingException uee) {
return str;
}
}
java.net.URLEncoder.encode(param)然后用
java.net.URLDecoder.decode(param)
就可以了。
另外你的页面头部要设置成ISO-8859-1
<%@ page contentType="text/html;charset=iso8859-1"%>
就可以了。
举个例子给你
1.jsp:
<%
String param="中文";
param = java.net.URLEncoder.encode(param);
%>
<a href = "2.jsp?param=<%=param%>">go</a>2.jsp:
<%@ page contentType="text/html;charset=gb2312"%><%
String param = request.getParameter("param");
param=java.net.URLDecoder.decode(param);
%><%="Param:"+param%>
<%@ page contentType="text/html;charset=gb2312"%><%
String param = request.getParameter("param");
param=java.net.URLDecoder.decode(param);
param=new String(param.getBytes("8859_1"),"gb2312");
%><%="Param:"+param%>
**************
<a href="<%=request.getRequestURL()%>?username=<%=URLEncoder.encode("中文")%>">click</a>
*********
接收
******
String username=new String(request.getParameter("username").getBytes("ISO8859_1"),"gb2312");
out.println(username);
但是我得到的是???, 而不是汉字。
test.jsp
<%@ page contentType="text/html;charset=gb2312" %>
<%
String param="祖国";
param = java.net.URLEncoder.encode(param);
%>
<a href = "test2.jsp?param=<%=param%>">go</a>test2.jsp<%@ page contentType="text/html; charset=GB2312" %>
<%
String param = request.getParameter("param");
param=java.net.URLDecoder.decode(param);
param=new String(param.getBytes("8859_1"),"gb2312");
%>
<%="Param:"+param%>
在TOMCAT启动前执行下面的命令
export LANG=zh_CN
<%
String param="祖国";
param = java.net.URLEncoder.encode(param);
%>
<a href = "test2.jsp?param=<%=param%>">go</a>test2.jsp<%@ page contentType="text/html; charset=GB2312" %>
<%
String param = request.getParameter("param");
param=new String(param.getBytes("ISO8859_1"),"gb2312");
%>
<%="Param:"+param%>
出现的信息:http://172.16.20.200/oa/common/test2.jsp?param=%3F%3FParam:?? 没招了
<%
String tempParam="祖国";
String param = new String( tempParam.getBytes("gb2312") , "iso8859_1" );
param = java.net.URLEncoder.encode(param);
%>
<a href = "test2.jsp?param=<%=param%>">go</a>test2.jsp<%@ page contentType="text/html; charset=GB2312" %>
<%
String param = request.getParameter("param");
param=new String(param.getBytes("ISO8859_1"),"gb2312");
%>
<%="Param:"+param%>看了各位的代码,猜的:)
成功了。