51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Java/JS/PHP中字符串编码解码URLEncoder/encodeURI/urlencode函数对比

在开发中经常需要将字符串或url进行编码、解码,下面分别测试Java、JS、PHP中相关函数的应用。

Java

  • 编码 URLEncoder.encode()

  • 解码 URLDecoder.decode()

    String s1="3 ?#:&(@!~-_.*')好a+/"; String s2=""; String s3=""; try { s2 = URLEncoder.encode(s1, "utf-8"); } catch (UnsupportedEncodingException e1) { e1.printStackTrace(); } try { s3=URLDecoder.decode(s2, "utf-8"); } catch (UnsupportedEncodingException e1) { e1.printStackTrace(); } System.out.println("原字符串:" + s1); System.out.println("编码:" + s2); System.out.println("解码:" + s3);

运行结果:

原字符串:3 ?#:&(@!~-_.*')好a+/
编码:3+%3F%23%3A%26%28%40%21%7E-_.*%27%29%E5%A5%BDa%2B%2F
解码:3 ?#:&(@!~-_.*')好a+/

JS

  • 编码 encodeURI()

  • 解码 decodeURI()

    let s1=encodeURI("3 ?#:&(@!~-_.*')好a+/"); let s2=decodeURI(s1); console.log('编码', s1); console.log('解码', s2);

运行结果:

编码 3%20?#:&(@!~-_.*')%E5%A5%BDa+/
解码 3 ?#:&(@!~-_.*')好a+/
  • 编码 encodeURIComponent()

  • 解码 decodeURIComponent()

    let s1=encodeURIComponent("3 ?#:&(@!~-_.*')好a+/"); let s2=decodeURIComponent(s1); console.log('编码', s1); console.log('解码', s2);

运行结果:

编码 3%20%3F%23%3A%26(%40!~-_.*')%E5%A5%BDa%2B%2F
解码 3 ?#:&(@!~-_.*')好a+/

encodeURIComponent()函数不会对 ()-_.*~!' 这些符号进行编码。

PHP

  • 编码 urlencode()

  • 解码 urldecode()

    $s="3 ?#:&(@!~-_.*')好a+/"; $s2 = urlencode($s); $s3 = urldecode($s2); echo '编码:'.$s2.'<br/>'; echo '解码:'.$s3;


运行结果:

编码:3+%3F%23%3A%26%28%40%21%7E-_.%2A%27%29%E5%A5%BDa%2B%2F
解码:3 ?#:&(@!~-_.*')好a+/
赞(2)
未经允许不得转载:工具盒子 » Java/JS/PHP中字符串编码解码URLEncoder/encodeURI/urlencode函数对比