2016-03-15 55 views
6

我有這樣的一些網址數組:JavaScript的去使用Unicode字符的URL

[ 
    "path/to/url1", 
    "path/to/url2", 
    "path/url/unicóde.txt" 
] 

我使用的是棱角分明,ng-repeat我創建了執行重定向到所需的URL可點擊列表,但是,當我點擊unicode網址時,瀏覽器無法找到它。

我試着用,但它檢索到這個: path/url/unic%C3%B3de.txt找不到。相反,當我手動訪問:path/url/unicóde.txt(這是一個ftp,所以,我按文件夾直到到達文件)瀏覽器中的網址現在說:path/url/unic%F3de.txt,這與給我encodeURI()的值不同。

然後,我可以clic這個列表項,並被重定向到所需的unicode網址?

下面的代碼: HTML:

<md-list-item ng-repeat="found in foundFiles"> 
     <h3>{{ found.name }}</h3> 
     <p ng-click="openFtpLink(found.url)">{{ found.url}}</p> 
    </md-list-item> 

的javascript:

$scope.foundFiles = [...] 
$scope.openFtpLink = function (ftpLink) { 
    var spawn = require('child_process').spawn; 
    spawn('cmd.exe', ['/c', 'start', '', ftpLink]); 
}; 

這是一個應用程序建立與電子+的角度,我想在這裏的是,當用戶點擊菜單,打開他的默認瀏覽器並將其重定向到url

+0

嘗試在腳本標籤中添加'charset =「utf-8」'。 –

+0

「我創建了一個可點擊的列表,執行重定向到所需的url」 - 需要查看代碼,因爲您似乎在解碼URL(或缺少URL)方面做了錯誤。 – Amadan

回答

0

使用JavaScript escape()函數。它給你想要的輸出。

alert(escape("path/url/unicóde.txt"));

注:escape()函數在JavaScript 1.5版棄用。

+0

escape()已被棄用,就像你說的那樣,應該用encodeURI()替換,但是在這種情況下,它可以工作,而encodeURI()不會。感謝您的回答! – mos