b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

urldecoder.decode_linux urldecode_urlencode的作用(3)

电脑杂谈  发布时间:2017-04-08 01:02:56  来源:网络整理

下面就是它的输出。需要注意的是这些代码应该以其他编码形式被保存而不是以ASCII码的形式,还有就是你选择的编码形式应该作为一个参数传给编译器,让编译器能据此对源代码中的非ASCII字符作出正确的解释。

% javac -encoding UTF8 EncoderTest %

java EncoderTest

Thisstringhasspaces

This*string*has*asterisks

This%25string%25has%25percent%25signs

This%2Bstring%2Bhas%2Bpluses

This%2Fstring%2Fhas%2Fslashes

This%22string%22has%22quote%22marks

This%3Astring%3Ahas%3Acolons

This%7Estring%7Ehas%7Etildes

This%28string%29has%28parentheses%29

This.string.has.periods

This%3Dstring%3Dhas%3Dequals%3Dsigns

This%26string%26has%26ampersands

This%C3%A9string%C3%A9has%C3%A9non-ASCIIcharacters

特别需要注意的是这个方法编码了符号,“\” ,&,=,和:。它不会尝试着去规定在一个URL中这些字符怎样被使用。由此,所以你不得不分块编码你的URL,而不是把整个URL一次传给这个方法。这是很重要的,因为对类URLEncoder最通常的用法就是查询string,为了和服务器端使用GET方法的程序进行交互。例如,假设你想编码这个查询sting,它用来搜索AltaVista网站:

pg=q&kl=XX&stype=stext&q="JavaI/O"&search.x=38&search.y=3

这段代码对其进行编码:

String query = URLEncoder.encode( "pg=q&kl=XX&stype=stext&q="JavaI/O"&search.x=38&search.y=3");System.out.println(query);

不幸的是,得到的输出是:

pg%3Dq%26kl%3DXX%26stype%3Dstext%26q%3D%2B%22Java%2BI%2FO%22%26search.x%3D38%26search.y%3D3

出现这个问题就是方法URLEncoder.encode( ) 在进行盲目地编码。它不能区分在URL或者查询string中被用到的特殊字符(象前面string中的“=”,和“&”)和确实需要被编码的字符。由此,所以URL需要像下面这样一次只编码一块:

<!--
Code highlighting produced by Actipro CodeHighlighter (freeware)

http://.CodeHighlighter.com/

-->  String query = URLEncoder.encode("pg");
  query = "=";
  query = URLEncoder.encode("q");
  query = "&";
  query = URLEncoder.encode("kl");
  query = "=";
  query = URLEncoder.encode("XX");
  query = "&";
  query = URLEncoder.encode("stype");
  query = "=";
  query = URLEncoder.encode("stext");
  query = "&";
  query = URLEncoder.encode("q");
  query = "=";
  query = URLEncoder.encode(""Java I/O"");
  query = "&";
  query = URLEncoder.encode("search.x");
  query = "=";
  query = URLEncoder.encode("38");
  query = "&";
  query = URLEncoder.encode("search.y");
  query = "=";
  query = URLEncoder.encode("3");
  System.out.println(query);


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-40100-3.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    每日福利
    热点图片
    拼命载入中...