-1

我在使用移动插件时遇到了问题:它向我显示了通过使用不同页面字符集编写脚本添加的新元素。例如,我可以阅读“cuadrúpedo”,但我的插件中的同一个词显示“cuadr¡pedo”。

我尝试将下一行写到插件的开头,但是没有用:

document.getElementsByTagName("html")[0].setAttribute("lang", "es");

然后,我写了一个“转换器函数”,用 unicode 替换特殊字符,就像下一行一样,但它不起作用。

str.replace( /ú/g, "/xfa־" );

我能做些什么?

4

2 回答 2

1

可能是文本编码的问题。

确保包含文字的文件"cuadrúpedo"保存为 utf-8,而不是 ansi。

请记住,一些关键文件必须是 ansi 编码的。这些install.rdfchrome.manifestbootstrap.js。在这种情况下,使用 unicode 转义,"cuadr\u00fapedo".

于 2013-01-25T20:35:17.540 回答
0

从 chrome:// URL 加载 JavaScript 文件(在 Gecko 1.8 及更高版本中)时,字节顺序标记用于确定脚本的字符编码。否则,字符编码将与 XUL 文件使用的相同。因此,一种解决方案是 HTTP 标头可以包含字符编码声明作为 Content-Type 标头的一部分,例如:

Content-Type: application/javascript; charset=UTF-8

为了跨版本兼容性,您必须将自己限制为 ASCII。但是,您可以使用 unicode 转义 - 使用它们重写的较早示例是:

var text = "Ein sch\u00F6nes Beispiel eines mehrsprachigen Textes: \u65E5\u672C\u8A9E";

JavaScript 和 Navigator 对 UTF-8/Unicode 的支持意味着您可以在 JavaScript 程序中使用非拉丁、国际和本地化字符以及特殊技术符号。Unicode 提供了一种编码多语言文本的标准方式:由于 Unicode 的 UTF-8 编码与 ASCII 兼容,因此程序可以使用 ASCII 字符。要接收非 ASCII 字符输入,客户端需要将输入作为 Unicode 发送。

Javascript中有一个用于文本转义和取消转义的网页: http ://0xcc.net/jsescape/

来源: https ://developer.mozilla.org/en-US/docs/International_characters_in_XUL_JavaScript https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Values,_variables,_and_literals#Unicode

于 2013-06-14T18:36:17.733 回答