URL转义
转自:http://blog.csdn.net/sunhuwh/article/details/41809909
URL中的字符只能是ASCII字符,但是ASCII字符比较少,而URL则常常包含ASCII字符集以外的字符,如非英语字符、汉字、特殊符号等等,所以要对URL进行转换。这个过程就叫做URL编码,或者叫URL转义,实质上就是将包含非ASCII字符的URL转换为有效的ASCII字符格式。
在进行URL编码时,每一个非ASCII字符都被替换为“%hh”格式,其中hh为两位十六进制数,它对应于该字符在ISO-8859-1字符集里的编码值。比如“中国”这两个汉字出现在URL,就要将他们转为“%D6%D0%B9%FA”,由于一个汉字需要两个字节,所以“中国”被替换成了四个ASCII字符。
public static void main(String[] args) throws UnsupportedEncodingException{ String s = "zhaoxiaofnag%40eims.com.cn "; s=URLDecoder.decode(s,"utf-8"); System.out.println(s); String china = "%31%32%36%2E%61%6D/hEeGv4"; china = URLDecoder.decode(china,"utf-8"); System.out.println(china); }
另附上ASCII字符与URL编码的对照表。 ASCII字符 URL编码 空格 %20 ! %21 " %22 # %23 $ %24 % %25 & %26 ' %27 ( %28 ) %29 * %2A + %2B , %2C - %2D . %2E / %2F 0 %30 1 %31 2 %32 3 %33 4 %34 5 %35 6 %36 7 %37 8 %38 9 %39 : %3A ; %3B < %3C = %3D > %3E ? %3F @ %40 A %41 B %42 C %43 D %44 E %45 F %46 G %47 H %48 I %49 J %4A K %4B L %4C M %4D N %4E O %4F P %50 Q %51 R %52 S %53 T %54 U %55 V %56 W %57 X %58 Y %59 Z %5A [ %5B \ %5C ] %5D ^ %5E _ %5F ` %60 a %61 b %62 c %63 d %64 e %65 f %66 g %67 h %68 i %69 j %6A k %6B l %6C m %6D n %6E o %6F p %70 q %71 r %72 s %73 t %74 u %75 v %76 w %77 x %78 y %79 z %7A { %7B | %7C } %7D ~ %7E %7F € %80 %81 ‚ %82 ƒ %83 „ %84 … %85 † %86 ‡ %87 ˆ %88 ‰ %89 Š %8A ‹ %8B Œ %8C %8D Ž %8E %8F %90 ‘ %91 ’ %92 “ %93 ” %94 • %95 – %96 — %97 ˜ %98 ™ %99 š %9A › %9B œ %9C %9D ž %9E Ÿ %9F %A0 ¡ %A1 ¢ %A2 £ %A3 %A4 ¥ %A5 | %A6 § %A7 ¨ %A8 © %A9 ª %AA « %AB ¬ %AC ¯ %AD ® %AE ¯ %AF ° %B0 ± %B1 ² %B2 ³ %B3 ´ %B4 µ %B5 ¶ %B6 · %B7 ¸ %B8 ¹ %B9 º %BA » %BB ¼ %BC ½ %BD ¾ %BE ¿ %BF À %C0 Á %C1  %C2 à %C3 Ä %C4 Å %C5 Æ %C6 Ç %C7 È %C8 É %C9 Ê %CA Ë %CB Ì %CC Í %CD Î %CE Ï %CF Ð %D0 Ñ %D1 Ò %D2 Ó %D3 Ô %D4 Õ %D5 Ö %D6 %D7 Ø %D8 Ù %D9 Ú %DA Û %DB Ü %DC Ý %DD Þ %DE ß %DF à %E0 á %E1 â %E2 ã %E3 ä %E4 å %E5 æ %E6 ç %E7 è %E8 é %E9 ê %EA ë %EB ì %EC í %ED î %EE ï %EF ð %F0 ñ %F1 ò %F2 ó %F3 ô %F4 õ %F5 ö %F6 ÷ %F7 ø %F8 ù %F9 ú %FA û %FB ü %FC ý %FD þ %FE ÿ %FF