地址中文是编码的,怎么解? a.asp?TName=%5B5f20%5D%5B5b81%5D09如上其实中文是TName=张宁09 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 a.asp?TName=%5B5f20%5D%5B5b81%5D09 是怎么来的? 这个是正常的啊,你直接用request.getParameter()旧可以得到! 这是一个编码的问题,在JDK中用两个类专门用来做这种的编码和解码;例: String str = "c%3A%5C%Documents+and+settings%5chhy%5c%D7%c0%c3%e6%5cn07ICE.txt"; 上面变量中就是已经编码过的,如果需要解码,就可以用JDK的URLDecoder.decode(String s, String enc) 进行解码解码后的结果为:c:\Documents and settings\hhy\桌面\NOTICE.TXT如果需要编码可以用decode(String s) 方法 这个编码好像有问题呢,问一下,这是什么编码?如何从“张宁09”得到“%5B5f20%5D%5B5b81%5D09”的啊? 昨天一着急发错了一个类一下代码我是进行测试过的://进行编码 String str = "d:\\张宁09"; String obj = URLEncoder.encode(str); System.out.println(obj); //d:\\张宁09 编码后的结果为:d%3A%5C%D5%C5%C4%FE09 //进行解码 String str1 = "d%3A%5C%D5%C5%C4%FE09"; String obj1 = URLDecoder.decode(str1); System.out.println(obj1); //d%3A%5C%D5%C5%C4%FE09 解码后的结果; 应该通过以下编码转化可以获取到所要的内容:String strName = new String(request.getParameter("TName").getBytes("ISO-8859-1"),"UTF-8"); 转化很简单。System.out.println(java.net.URLEncoder.encode("楼主")); 这样就可以,看下结果就明白了。获取的时候跟平时一样,不需要什么特殊操作。 刚看到个帖子,也是同类问题,已经解决了。楼主可以参考下。如果有问题可以私信楼主。谁能讲一讲关于jsp的地址栏传中文参数到底是如何编码的? 其实,这个编码是unicode 的: [张][宁]09%5B5f20%5D%5B5b81%5D09注意汉字部分是低低高高的顺序%5B [5f20 张%5D ]%5B [5b81 宁%5D ]09 09 确切的说是被包装过的编码.高位 | 低位------------------5f | 20 '张' 的 unicode 值( 直接的 )5b | 81 '宁' 的 unicode 值 你可以这样测试,来获得结果.out.println( "\u5f20\u5b81" ); servlet参数里面传递url的一个问题 反射机制+依赖注入的问题 servlet怎么测试 请教jsp 关于Ajax调用struts1.x中的action的问题 得到在线HTML编辑器FCKeditor内容的问题 关于object expected的问题,我头都想破了,帮帮小弟吧! tomcat的问题,急求各位高手 一个困扰很久的问题 help me!! 在java中,如何实现数据导入到xml中?(在线等待) 灵异的action forward问题…… 分页问题!能运行,但点击上下页的时候数据没有改变。也没有错误??
是怎么来的?
例:
String str = "c%3A%5C%Documents+and+settings%5chhy%5c%D7%c0%c3%e6%5cn07ICE.txt";
上面变量中就是已经编码过的,如果需要解码,就可以用JDK的URLDecoder.decode(String s, String enc) 进行解码
解码后的结果为:c:\Documents and settings\hhy\桌面\NOTICE.TXT如果需要编码可以用decode(String s) 方法
这个编码好像有问题呢,问一下,这是什么编码?如何从“张宁09”得到“%5B5f20%5D%5B5b81%5D09”的啊?
//进行编码
String str = "d:\\张宁09";
String obj = URLEncoder.encode(str);
System.out.println(obj);
//d:\\张宁09 编码后的结果为:d%3A%5C%D5%C5%C4%FE09
//进行解码
String str1 = "d%3A%5C%D5%C5%C4%FE09";
String obj1 = URLDecoder.decode(str1);
System.out.println(obj1);
//d%3A%5C%D5%C5%C4%FE09 解码后的结果;
String strName = new String(request.getParameter("TName").getBytes("ISO-8859-1"),"UTF-8");
这样就可以,看下结果就明白了。获取的时候跟平时一样,不需要什么特殊操作。
%5B5f20%5D%5B5b81%5D09
注意汉字部分是低低高高的顺序
%5B [
5f20 张
%5D ]
%5B [
5b81 宁
%5D ]
09 09
------------------
5f | 20 '张' 的 unicode 值( 直接的 )5b | 81 '宁' 的 unicode 值
out.println( "\u5f20\u5b81" );