0

我正在 Spitiy 框架内构建个人应用程序。我遇到了具有特殊特殊字符(如单引号/双引号、& 符号等)的曲目和艺术家标题的问题......

在挖掘解决方案时,我发现了使用 replace() 方法的 hack。但随后进行了更多挖掘,我从 Spotify 本身找到了一个示例代码,并发现了一些奇怪的东西。本质上,当示例代码收集轨道信息,然后将其显示在

标签,曲目标题正确显示了特殊字符,但是当我尝试在说警报()中显示信息或作为文本框中的值时,标题出现时特殊字符弄乱了。

同样,我可以使用 replace() 方法来解决这个问题,但我很想知道为什么会发生这种行为(也就是 innerHTML 显示正确与警报和文本框错误)。

这是我使用的代码:

http://codetidy.com/3891/

编辑:

从我读到的内容看来,innerHTML 实际上确实将特殊字符编码为常见的 Web 表单。但由于我将值放入文本框中,因此我制作了自己的过滤器:

http://codetidy.com/3892/

4

1 回答 1

0

首先,阅读 HTML 编码和(例如)innerHTML 和 innerText 之间的区别(以及未正确处理这两者之间的区别的 XSS 安全隐患!)

现在,Spotify Api(至少是 Spotify 应用程序中的一个;Web API 的工作方式不同)默认返回 HTML 编码的值。

如果您确定要对字符串进行文本编码,请对字符串使用 decodeForText() 方法 (so var textname = data.name.decodeForText();)。

另请参阅有关此问题的 Spotify 文档

于 2012-11-05T10:00:16.470 回答