node.js、IO.js 解碼URL

URL的編碼格式是採用ASCII碼,不是Unicode,而中文並非ASCII碼。
因此在瀏覽器上看到的中文網址都是經過UTF8的解碼後得到的結果。
所以當我們把瀏覽器的網址複製下來貼到記事本後,就會看到好像亂碼的URL。

例如:
http://blogger.twtnn.com/寓教於樂
會變成
http://blogger.twtnn.com/%E5%AF%93%E6%95%99%E6%96%BC%E6%A8%82

首先安裝urlencode的外掛:
# npm install urlencode

範例的原始碼如下:
----------------------------------------------------------------------------------
var urlencode = require('urlencode');
var http = require('http');

var handleRequest = function(request, response){
    response.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'});
//中文字為三組碼,所以E5、AF、93解碼後是「寓」
    response.write(urlencode.decode('http://blogger.twtnn.com/%E5%AF%93%E6%95%99%E6%96%BC%E6%A8%82','utf8'));
    response.end();
}

var server = http.createServer(handleRequest);

server.listen(8800,'127.0.0.1',function(){
    console.log('Http Server Start');
});


把上面的原始碼儲成test.js,啟動後到瀏覽器輸入127.0.0.1:8800如下圖: