0

由於某些原因,我對「請求」模塊有問題。無法使用node.js和「請求」模塊向UTF-8鏈接發送請求

var options = { 
    protocol: "https", 
    host: "euw.api.pvp.net", 
    pathname: "/api/lol/euw/v1.4/summoner/by-name/" + name, 
    search: "api_key=api-key-deleted" 
}; 
var riotURL = url.format(options); 

request(riotURL, function (error, response, body) { 
    if (!error && response.statusCode == 200) { 
     //doing someting 
    } 
}); 

然後它變得很奇怪。如果名字很簡單,比如「Dager」,「嗨媽媽」等等,我的應用會很好。但是當我嘗試將名稱改爲「növentaynueve」,「Mìnou」時 - 我的請求會返回404響應。

我設法得到了完整的回覆文本:http://pastebin.com/8Vra1i4X。我不明白髮生了什麼事。所有的迴應都是正確的。但它看起來像請求模塊,而不是發送請求

https://euw.api.pvp.net/api/lol/euw/v1.4/summoner/by-name/n%C3%B6ventaynueve?api_key=api-key-deleted 

的發送請求

https://euw.api.pvp.net/api/lol/euw/v1.4/summoner/by-name/n%EF%BF%BDventaynueve?api_key=api-key-deleted 

但是,爲什麼?

回答

0

解決了encodeURI()函數的問題。

有趣的是:在Debian上,它甚至在沒有encodeURI()的情況下也能正常工作。但在Windows 10上不行。這兩個源文件都是UTF-8。