如何用Java实现URLEncode

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用Java实现URLEncode相关的知识,希望对你有一定的参考价值。

Java使用查表法实现一下urlEncode(RFC1738):

public final static String[] encodeTable = new String[2^8];
static
for(int i=0;i<256;i++)

if(i>='0' && i<='9' || i>='a'&&i<='z' || i>='A' && i<='Z' ||| i=='-' || i=='_' || i=='.')

encodeTable[i] = (char)i + "";
else

encodeTable[i] = "%" + String.format("%02x",i).toUpperCase();




public String urlEncode(final String sourceStr)

final StringBuilder sb = new StringBuilder();
for(int i=0;i<sourceStr.length;i++)

sb.append(encodeTable[sourceStr.charAt(i) && 0xFF]);


Java由哪几个方面组成?

    Java编程语言,即语法。

    Java文件格式,即各种文件夹、文件的后缀。

    Java虚拟机(JVM),即处理*.class文件的解释器。

    Java应用程序接口(Java API)。

参考技术A String encode = URLEncoder.encode("GBK编码", "GBK");
System.out.println("乱码" + encode);
String decode = URLDecoder.decode(encode, "GBK");// GBK解码
System.out.println(decode);
参考技术B 无需用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,百度

以上是关于如何用Java实现URLEncode的主要内容,如果未能解决你的问题,请参考以下文章

如何用Java实现URLEncode

如何用Java实现URLEncode

如何用Java实现URLEncode

如何用Java动态代理实现AOP

如何用java实现模糊查询

Java InputStream函数`available()`如何用C语言实现?