2016-03-15 4 views
6

मैं इन जैसे कुछ यूआरएल के साथ एक सरणी है:जावास्क्रिप्ट यूनिकोड वर्ण के साथ URL पर जाने

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

मैं कोणीय उपयोग कर रहा हूँ, ng-repeat साथ मैं एक क्लिक करने योग्य सूची है कि वांछित यूआरएल को एक रीडायरेक्ट प्रदर्शन बनाया है, लेकिन, जब मैंने यूनिकोड यूआरएल पर क्लिक किया, तो ब्राउजर इसे नहीं ढूंढ पाया।

मैं के साथ प्रयास करता हूं, लेकिन यह इसे पुनर्प्राप्त करता है: path/url/unic%C3%B3de.txt जो नहीं मिला है। इसके बजाय, जब मैं मैन्युअल रूप से एक्सेस कर रहा हूं: path/url/unicóde.txt (यह एक FTP में है, इसलिए, मैं फ़ाइल तक फ़ोल्डर तक फ़ोल्डर में जाता हूं) ब्राउज़र में यूआरएल अब कहता है: path/url/unic%F3de.txt, जो कि encodeURI() मुझे मूल्य के लिए अलग है।

फिर मैं इस सूची आइटम पर कैसे जा सकता हूं और वांछित यूनिकोड यूआरएल पर रीडायरेक्ट किया जा सकता हूं?

यहाँ कोड: एचटीएमएल:

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

जावास्क्रिप्ट:

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

यह एक अनुप्रयोग, इलेक्ट्रॉन + कोणीय साथ निर्माण क्या मैं यहाँ चाहते हैं कि उपयोगकर्ता आइटम क्लिक करता है, खुली हुई है उसका डिफ़ॉल्ट ब्राउज़र और उसे यूआरएल

+0

अपने स्क्रिप्ट टैग में 'charset = "utf-8" 'जोड़ने का प्रयास करें। –

+0

"मैंने एक क्लिक करने योग्य सूची बनाई है जो वांछित यूआरएल पर रीडायरेक्ट करता है" - इसके लिए कोड देखने की आवश्यकता है, क्योंकि आप यूआरएल डिकोडिंग (या इसकी कमी) के संबंध में कुछ गलत कर रहे हैं। – Amadan

उत्तर

0

जावास्क्रिप्ट escape() फ़ंक्शन का उपयोग करें। यह आपको वांछित आउटपुट देता है।

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

नोट: escape() समारोह जावास्क्रिप्ट संस्करण 1.5 में पदावनत किया गया था।

+0

एस्केप() को बहिष्कृत किया गया है, जैसा कि आप कहते हैं, और encodeURI() के साथ प्रतिस्थापित किया जाना चाहिए, लेकिन, इस मामले में, यह काम करता है, और encodeURI() नहीं करता है। आपके उत्तर के लिए धन्यवाद! – mos

संबंधित मुद्दे