重新对bytes进行解码,创建新的字符串对象:str = new String(Byte[] bytes,String decodeCharsetName);
一般结合使用:str = new String(str.getBytes(String encodeCharsetName),String decodeCharsetName);
例如:resultName=new String(username.getBytes("ISO-8859-1"),"UTF-8");
还可以加入判断:
if(!Charset.forName("gbk").newEncoder().canEncode(str)){str = new Strin(str.getBytes("ISO-8859-1"),"UTF-8");}else{str = new String(str.getBytes("ISO-8859-1"),"gbk");}
处理请求参数传递编码问题:
java中编码:URLEncoder.encode(strUri,"utf-8");
java中解码码:URLDecoder.decode(strUri,"utf-8");
js中编码:encodeURIComponent(strUri);encodeURI(strUri);escape(str);
js中解码:decodeURIComponent(strUri);decodeURI(strUri);unescape(str);
补充概念:
URI组件:主机、端口、路径、查询参数、片段等 。
URI组件分隔符::/?#[]@,冒号用于分隔协议和主机,/用于分隔主机和 路径 , ?用于分隔路径和查询参数,用于分隔多个查询参数等 。
URI中的不安全字符或保留字符: ! * ‘ ( ) ; : @= + $ , / ? # [ ] 他们具有特殊作用 , 例如上面的分隔作用 。
URI允许出现的字符:只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~4个特殊字符以及所有保留字符 , 其他字符均需要经过编码之后才能出现在Url中,比如使用保留字符的原意,而不是特殊作用 。
js向java/jsp的编码与解码:
js中编码:encodeURI(encodeURI(strUri));decodeURIComponent(decodeURIComponent(strUri));
java/jsp中解码: java.net.URLDecoder.decode(strUri,"UTF-8");
js中编码两次的问题:如果使用一次编码,在浏览器地址栏里,浏览器认为%是个转义字符,浏览器会把%与%之间的编码值,两位两位取出后进行解码 。
然后再传递给处理页面,然后由处理页面进行再次解码,这样前面就缺少了一次编码过程,所以前面需要连续两次编码 。
javaurl解码代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java urldecode解码、javaurl解码代码的信息别忘了在本站进行查找喔 。
推荐阅读
- 如何优化新媒体标签设计,新媒体标题制作
- 游戏视频号主题怎么写,游戏视频标题怎么写
- 金花棋牌游戏教程的简单介绍
- flutter集成原生插件,flutter开源ui组件
- vb.net语句整理 vbnet single
- mysql联合查询统计数量,MySQL统计字符数量
- oracle什么字段适合建索引,oracle中建索引
- 汽修店如何推广,汽修厂如何做推广活动
- php数据添加不到数据库 php向mysql添加数据失败