关于JAVA中URL传递中文参数,取值是乱码的解决办法
前几天看到有网友在问URLDecoder和URLEncoder方面的使用问题,突然想起,原来我刚遇到这两个类时,也觉得很神密,由此可以想想初学者的心情,于是便有了今天的这篇文章.
其实,这两个类的使用并不复杂,URLDecoder和URLEncoder它的作用主要是用于普通字符串和application/x-www-form-rulencodedMIME字符串之间的转换,一般的人会以为后一个字符串比较专业,以为有什么高深的知识,其实不然.
下面,我们在在"百度"中搜索"网络时空",会看到如下所示的图示
从上图中可以看出:当我们搜索的关健字包含中文时,这些关健字就会变成如图所示的"乱码",实际上这不是乱码,这就是所谓的applicaion/x-www-form-urlencodedMIME字符串.
当URL地址里包含非西欧字符的字符串时,系统会将这些非西欧转换成如图所示的特殊字符串,那么编码过程中可能涉及将普通字符串和这种特殊字符串的相关转换,这就是需要使用URLDecoder和URLEncoder类
URLDecoder类包含一个decode(String s,Stringcharcter)静态方法,它可以将看上去乱码的特殊字符串转换成普通字符串
URLEncoder类包含一个encode(String s,Stringcharcter)静态方法,它可以将普通字符串转换成application/x-www-form-urlencodedMIME字符串
如下程序代码
importjava.net.*;
public class URLDecoderTest
{
public static void main(String[] args)
throws Exception
{
//将application/x-www-form-urlencoded字符串
//转换成普通字符串
//其中的字符串直接从上图所示窗口复制过来
String keyWord =URLDecoder.decode(
"%CD%F8%C2%E7%CA%B1%BF%D5","UTF-8");
System.out.println(keyWord);
//将普通字符串转换成
//application/x-www-form-urlencoded字符串
String urlStr =URLEncoder.encode(
"网络时空" ,"UTF-8");
System.out.println(urlStr);
}
}
上面程序中就是普通中文字符串和application/x-www-form-urlencoded MIME字符串之间的转换.
运行上面程序结果图示如下
最新文章
- ajex请求的数据 什么时候需用Json.parse()
- HITtrainning20140417题解
- oracle中用SQL实现两个日期间的日期形成一个数据集
- [转]layoutSubviews总结
- 搜索打表大找规律 (hdu2045)
- SilkTest Q&;A 12
- 用Spark学习FP Tree算法和PrefixSpan算法
- hushset的实现原理
- nodejs中异步
- Python基础-类变量和实例变量
- UWP中使用Telerik UI For UWP
- 201521123088《java程序设计》第三周学习总结
- 【CJOJ2512】gcd之和(莫比乌斯反演)
- ECMAScript 6 学习(一)generator函数
- PHP中的反射
- kettle在centos7下部署分布式集群
- Android TextView 跑马灯效果 - 2018年6月19日
- python学习 day07打卡 文件操作
- Android程序示例
- HTTP request is unauthorized with client authentication scheme 'Anonymous'. The authentication header received from the server was 'NTLM'。
热门文章
- Pro ASP.NET MVC 5 Framework.学习笔记.6.3.MVC的必备工具
- android 数据库操作
- 修改tomcat的logo
- ISO C90 forbids mixed declarations and code 警告
- 网站性能优化之CSS无图片技术:三角形
- Mysql-学习笔记(==》集合函数与分组四)
- android sdk 国内镜像地址
- 在centos6.3用yum安装redis
- BZOJ 2566 xmastree(树分治+multiset)
- CodeForces 471C MUH and House of Cards