中文不能直接放在URL里
例如:
http://xx.x.x/QueryById?filter=张
这样写是不支持的,必须把中文字符转成百分号形式的编码
URL编码:
'张'->'%E5%BC%A0'
URL解码
'%E5%BC%A0' ->'张'
getParameter()
会进行处理、它取出来的是百分号形式的字符串,它自己会按UTF-8解码,
得到正常的字符串
手写URL编码与解码
package my.lesson4;
import java.net.URLDecoder;
import java.net.URLEncoder;
public class TestUrlEncode
{
// '张' -> '%E5%BC%A0'
public static void testEncode()throws Exception
{
String str = "张";
String query = URLEncoder.encode(str, "UTF-8");
System.out.println("编码后: " + query);
}
// '%E5%BC%A0' -> '张'
public static void testDecode()throws Exception
{
String str = "%E5%BC%A0";
String query = URLDecoder.decode(str, "UTF-8");
System.out.println("解码后: " + query);
}
public static void main(String[] args)
{
try
{
//testEncode();
testDecode();
} catch (Exception e)
{
// TODO Auto-generated catch block e.printStackTrace();
}
}
}