2016-03-15 16 views
6

Tôi có một mảng với một số url như thế này:javascript Go to URL với các ký tự unicode

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

Tôi đang sử dụng góc, với ng-repeat Tôi tạo ra một danh sách có thể nhấp đã thực hiện một chuyển hướng đến url mong muốn, nhưng, khi tôi nhấp vào url unicode, trình duyệt không thể tìm thấy nó.

Tôi thử với , nhưng nó truy xuất thông tin này: path/url/unic%C3%B3de.txt không tìm thấy. Thay vào đó, khi tôi truy cập theo cách thủ công tới: path/url/unicóde.txt (đây là ftp, vì vậy, tôi chuyển thư mục theo thư mục cho đến khi đến tệp) url trong trình duyệt hiện nói: path/url/unic%F3de.txt, khác với giá trị đã cho tôi encodeURI().

Làm cách nào tôi có thể nhét vào mục danh sách này và được chuyển hướng đến url unicode mong muốn?

Đây mã: 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]); 
}; 

Đây là một ứng dụng xây dựng với electron + góc cạnh, những gì tôi muốn ở đây là khi người dùng nhấp chuột vào mục, mở trình duyệt mặc định của mình và chuyển hướng đến url

+0

Thử thêm 'charset =" utf-8 "' vào thẻ tập lệnh của bạn. –

+0

"Tôi đã tạo danh sách có thể nhấp thực hiện chuyển hướng đến url mong muốn" - cần xem mã cho điều này, vì bạn dường như đang làm điều gì đó sai về giải mã URL (hoặc thiếu). – Amadan

Trả lời

0

Sử dụng JavaScript escape() Chức năng. Nó cung cấp cho bạn đầu ra mong muốn.

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

Lưu ý: Chức năng escape() được tán thành trong phiên bản JavaScript 1.5.

+0

escape() không được chấp nhận, giống như bạn nói và phải được thay thế bằng encodeURI(), nhưng trong trường hợp này, nó hoạt động và encodeURI() thì không. cảm ơn câu trả lời của bạn! – mos

Các vấn đề liên quan