「encodejava学」java的encode方法

博主:adminadmin 2022-11-28 14:43:07 52

本篇文章给大家谈谈encodejava学,以及java的encode方法对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java在做文件下载时的encode与decode问题

是在写servlet吗?如果是,只要这样Ok了

String filenNme="myName";

filenNme= new String(filenNme.getBytes(), "ISO-8859-1");

response.setHeader("Content-Disposition", "attachment;filename="+ filenNme);

这样就好了

java中编码与解码分别指什么?

java中编码:URLEncoder.encode(strUri,"utf-8");

java中解码码:URLDecoder.decode(strUri,"utf-8");

java编码和解码        

流读取文件,具有转换编码功能的有:OutputStreamWriter和InputStreamReader,

构造器有如:

InputStreamReader(InputStream in, String charsetName)

创建使用指定字符集的 InputStreamReader。

OutputStreamWriter(OutputStream out, String charsetName)

创建使用指定字符集的 OutputStreamWriter。

处理字符串编码问题:

重新对获取的字符串进行编码:Byte[] bytes = str.getBytes(String encodeCharsetNam);

重新对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中编码两次的问题:如果使用一次编码,在浏览器地址栏里,浏览器认为%是个转义字符,浏览器会把%与%之间的编码值,两位两位取出后进行解码。

然后再传递给处理页面,然后由处理页面进行再次解码,这样前面就缺少了一次编码过程,所以前面需要连续两次编码。

Java中URLEncoder.encode和encodeURIComponent的区别

1)encodeURIComponent和decodeURIComponent在前端使用

2)URLEncoder.encode和URLDecoder.decode在后台使用

知识点:

1)encodeURIComponent和URLEncoder.encode的区别在于前者对下面五个符号不编码

! %21

' %27

( %28

) %29

~ %7E

2)decodeURIComponent和URLDecoder.decode暂时还看不出有何区别

解释:

前后台交互传输数据的过程中,如果含有!'()~,同样的内容会传输不同的编码结果,但是对方都能解码。在具体应用时,如果有比较前后台编码的逻辑,最好测一下这几个符号。如果编程环境已解决此问题最好,否则就要考虑一下修补之事了。

如何用Java实现URLEncode

无需用Java实现URLEncode,jdk有已经实现了。

用法如下:

String urlStr = java.net.URLEncoder.encode("hello,百度", "GBK");

输出urlStr:%C8%CE%BA%F0%B2%F0%B0%A1

String keyWord = java.net.URLDecoder.decode("%C8%CE%BA%F0%B2%F0%B0%A1

", "GBK");

输出keyWord:hello,百度

encodejava学的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java的encode方法、encodejava学的信息别忘了在本站进行查找喔。

The End

发布于:2022-11-28,除非注明,否则均为首码项目网原创文章,转载请注明出处。