javascript转到带有unicode字符的url
Posted
技术标签:
【中文标题】javascript转到带有unicode字符的url【英文标题】:javascript go to url with unicode characters 【发布时间】:2016-06-30 07:23:20 【问题描述】:我有一个数组,里面有一些像这样的 url:
[
"path/to/url1",
"path/to/url2",
"path/url/unicóde.txt"
]
我正在使用角度,ng-repeat
我创建了一个可点击的列表,执行重定向到所需的 url,但是,当我点击 unicode url 时,浏览器找不到它。
我尝试使用 encodeURI("path/url/unicóde")
,但它会检索到:
path/url/unic%C3%B3de.txt
未找到。相反,当我手动访问:path/url/unicóde.txt
(这是在一个 ftp 中,所以,我逐个文件夹直到到达文件)浏览器中的 url 现在显示:path/url/unic%F3de.txt
,这与给出的值不同我encodeURI( )
。
然后我如何可以点击此列表项并重定向到所需的 unicode url?
代码如下: 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>
$scope.foundFiles = [...]
$scope.openFtpLink = function (ftpLink)
var spawn = require('child_process').spawn;
spawn('cmd.exe', ['/c', 'start', '', ftpLink]);
;
这是一个使用 electron + angular 构建的应用程序,我想要的是当用户单击该项目时,打开他的默认浏览器并将其重定向到 url
【问题讨论】:
尝试将charset="utf-8"
添加到您的脚本标签中。
“我创建了一个执行重定向到所需 URL 的可点击列表” - 需要查看此代码,因为您似乎在 URL 解码(或缺少解码)方面做错了。
【参考方案1】:
使用 JavaScript escape()
函数。它为您提供所需的输出。
alert(escape("path/url/unicóde.txt"));
注意:escape()
函数在 JavaScript 1.5 版中已弃用。
【讨论】:
escape() 已被弃用,就像你说的那样,应该用 encodeURI() 代替,但是在这种情况下,它可以工作,而 encodeURI() 不能。谢谢你的回答!以上是关于javascript转到带有unicode字符的url的主要内容,如果未能解决你的问题,请参考以下文章
带有 unicode 字符的 Python 正则表达式错误?