JavaScript - 转义字符实体(→ 显示为 →)

5
document.title = ("hello → goodbye");

这段代码无法正确输出箭头符号:"→"。 如何进行转义以正确输出?


这是 JavaScript,不是 jQuery。 - SLaks
3个回答

9
你根本不需要转义它。
只需直接写即可。
document.title = "hello → goodbye";

请确保你的文件是UTF8格式。

如果你真的想要转义它,可以使用JavaScript转义码:"\u2192"

实体只在HTML源代码中使用;你不能在普通字符串中使用它们。 (除了innerHTML,它是HTML源代码)


太棒了,它起作用了。这是一个新手问题,但我认为其他新手在遇到这个问题时也会受益。有时候答案比你想象的简单得多...实际上,很多时候都是这样。 - RGBK
如果您分配给 document.title 的数据是不受信任的,那么不转义是否安全? - user
@buffer:是的。document.title是一个普通字符串。转义的整个目的是将任意文本插入到结构化语言中。 - SLaks

7

您需要使用 JavaScript字符转义序列 \u2192

document.title = "hello \u2192 goodbye";

或者,正如SLaks指出的那样,如果JavaScript文件是Unicode编码的,你可以直接将它放在代码中:
document.title = ("hello → goodbye");

2

我不相信HTML的<title>标签允许标记,它只将所有内容视为字符串文字。换句话说,在脚本中不要尝试使用HTML实体,而只需使用实际的“→”字符。


1
我非常确定那不是真的。然而,JS字符串不支持实体。 - SLaks
2
@SLaks没错,标题确实允许实体,我的错误:http://www.w3.org/TR/html401/struct/global.html#edef-TITLE - Ben

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接