jsp中:
<body>
<p>测试北京电大首页输入参数中包含中文用户名的问题</p>
<%
String uri = request.getRequestURI();
StringBuffer url = request.getRequestURL();
String queryStr = request.getQueryString();
String fullUrl = uri.toString() + "?" + queryStr;
String decodeStr=java.net.URLDecoder.decode(fullUrl, "UTF-8");//这个就是按照utf-8格式解密的方法
%>
<div><%=url%></div><br>
<p>输出:http://127.0.0.1:8000/test.jsp</p><br>
<br><br>
<div><%=uri%></div><br>
<p>输出:/test.jsp</p><br>
<br><br>
<div><%=queryStr%></div><br>
<p>输出:auth=yes&username=测试员111&onlines=1 </p><br>
<br><br>
<div><%=decodeStr%></div><br>
<p>输出:http://127.0.0.1:8000/test.jsp?auth=yes&username=测试员111&onlines=1</p><br>
<br><br>
</body>
LoginAction中:if(loginForm.getUrl()!=null && loginForm.getUrl().length()!=0){
String userName = user.getUsername();
String encodeUserName = java.net.URLEncoder.encode(userName,"UTF-8");
response.sendRedirect(loginForm.getUrl()+"&username=" + encodeUserName + "&onlines=" + onlines);
}else{
response.sendRedirect("welcome.do");
}
java.net.URLEncoder
java.net.URLDecoder
java.net.URLEncoder和java.net.URLDecoder的使用2008-12-05 09:29import java.io.UnsupportedEncodingException;
public class TestCode {
public static void main(String[] args) {
String str="你好吗";
try {
//将 String 转换为 application/x-www-form-urlencoded MIME 格式
//使用指定的编码机制将字符串转换为 application/x-www-form-urlencoded 格式。
String codestr=java.net.URLEncoder.encode(str,"UTF-8");
System.out.println("codestr:"+codestr);
// 使用指定的编码机制对 application/x-www-form-urlencoded 字符串解码。
String decodeStr=java.net.URLDecoder.decode(codestr, "UTF-8");
System.out.println("decodestr:"+decodeStr);
str="你小子好嚣张呀?";
codestr=java.net.URLEncoder.encode(str,"gbk");
System.out.println("codestr:"+codestr);
decodeStr=java.net.URLDecoder.decode(codestr, "gbk");
System.out.println("decodestr:"+decodeStr);
str="你小子好帅呀!";
codestr=java.net.URLEncoder.encode(str,"gb2312");
System.out.println("codestr:"+codestr);
decodeStr=java.net.URLDecoder.decode(codestr, "gb2312");
System.out.println("decodestr:"+decodeStr);
str="Go,go,快点,车马上要走了!";
codestr=java.net.URLEncoder.encode(str,"gb18030");
System.out.println("codestr:"+codestr);
decodeStr=java.net.URLDecoder.decode(codestr, "gb18030");
System.out.println("decodestr:"+decodeStr);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
import java.net.URLEncoder;
import java.net.URLDecoder;
import java.io.*;
public class URL
{
public static void main(String args[])
{
try{
String enCode = URLEncoder.encode("http://www.ioby.net/default.jsp?name=哈哈", "UTF-8");
System.out.println(enCode);
String deCode = URLDecoder.decode(enCode, "UTF-8");
System.out.println(deCode);
}
catch(UnsupportedEncodingException e)
{
}
}
}
---------------
/**
* 将文件名中的汉字转为UTF8编码的串,以便下载时能正确显示另存的文件名
*
* @param s 原文件名
* @return 重新编码后的文件名
*/
public static String toUtf8String(String s) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c >= 0 && c <= 255) {
sb.append(c);
} else {
byte[] b;
try {
b = String.valueOf(c).getBytes("utf-8");
} catch (Exception ex) {
System.out.println(ex);
b = new byte[0];
}
for (int j = 0; j < b.length; j++) {
int k = b[j];
if (k < 0)
k += 256;
sb.append("%" + Integer.toHexString(k).toUpperCase());
}
}
}
return sb.toString();
}
=======================================================================
1.加密。
Response.Redirect("DetailInfo.aspx?id=" + Convert.ToBase64String(System.Text.Encoding.Default.GetBytes("sp10006")).Replace("+","%2B"));
2.解密。
string ID = System.Text.Encoding.Default.GetString(Convert.FromBase64String(Request.QueryString["id"].ToString().Replace("%2B","+")));