【问题标题】:javascript go to url with unicode charactersjavascript转到带有unicode字符的url
【发布时间】:2023-03-09 11:19:01
【问题描述】:

我有一个数组,里面有一些像这样的 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>

javascript:

$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 解码(或缺少解码)方面做错了。

标签: javascript angularjs url unicode


【解决方案1】:

使用 JavaScript escape() 函数。它为您提供所需的输出。

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

注意:escape() 函数在 JavaScript 1.5 版中已弃用。

【讨论】:

  • escape() 已被弃用,就像你说的那样,应该用 encodeURI() 代替,但是在这种情况下,它可以工作,而 encodeURI() 不能。谢谢你的回答!
猜你喜欢
  • 1970-01-01
  • 2015-10-16
  • 2013-10-17
  • 1970-01-01
  • 2023-03-31
  • 2021-11-21
  • 1970-01-01
  • 2014-01-27
  • 2015-03-27
相关资源
最近更新 更多