中文網址亂碼,URL解碼(javascript)

如果網址列中帶有中文,雖然在瀏覽器上可以正確看到中文,但是複製網址到記事本上卻出現亂碼。

其實它不是亂碼,因為URL在網路上只能以ASCII碼傳送,而ASCII就只有英、數字及特殊符號,
當然中文就不再支援之列,所以必須將中文以UTF8轉成16進位,傳送到瀏覽器之後,再解碼回來,
就可以得到正確的中文,所以在瀏覽器看到的中文是解碼後的結果。
所以我試著以javascript寫一個解碼的程式,還蠻有趣的。


<!DOCTYPE html>
<html>
  <header>
    <meta charset="utf-8" />
  </header>
 
  <body>
    <p>
 請輸入原始的URL網址,如:http://twtnn.com/%E5%AF%93%E6%95%99,<br />  
</p>
    <p><textarea id="sou" cols="40" rows="5" ></textarea></p>
<button onclick="fn_decodeURI()">開始解碼</button>
<p><textarea id="res" cols="40" rows="5" ></textarea></p>
  </body>
  <script>
    function fn_decodeURI() {
 var str_url = document.getElementById("sou").value ;
 //將分行符號刪除
 str_url = str_url.replace(/\n/g,"");
 //解碼使用decodeURI,編碼使用encodeURI
      var dec = decodeURI(str_url);
      document.getElementById("res").value = dec;
    }
  </script>
</html>