如何“UTF-8编码”我的JavaScript文件,以便谷歌浏览器可以在扩展中使用它们?

问题描述:

我正在为Chrome编写一个相当简单的扩展。它的主要图形体(处理html的部分,即前端)工作正常,但是当我试图包含使用Jquery的$ .ajax()函数从第二页返回一些信息到第二个JavaScript文件Chrome会抛出以下错误,并且不会让我加载扩展名:如何“UTF-8编码”我的JavaScript文件,以便谷歌浏览器可以在扩展中使用它们?

无法从“路径\ to \ extension”加载扩展名。无法为内容脚本加载文件“filename.js”。它不是UTF-8编码。

我不老实地知道UTF-8编码能够告诉Chrome会怎么说我的文件。我没有特殊字符,没有重音符号或任何东西,我知道可以把事情搞砸。我无法在任何地方找到好的解决方案。

+0

您可能将该文件保存为UNICODE。你在用什么编辑器? – xanatos 2011-03-08 20:15:14

+0

Notepad ++,在Ekkehard的评论之后,我意识到默认为ANSI。我将*中的一些文本复制到注释中,显然它使用了UTF-8非标准的奇怪形式的连字符。 – 2011-03-08 20:27:52

+2

记事本+ +,至少我使用的版本 - v.5.6.4,也有一个编码菜单项,它会自动将它从ANSI/Unicode /等转换。到UTF-8。我已使用此功能制作自己的Chrome扩展程序。 – 2012-05-06 16:27:46

UTF-8编码文件的简单方法是使用允许选择该编码的编辑器。如果你不能这样做,那么在linux/unix系统上有(相当标准的)工具来检查(文件)和更改(iconv,重新编码)编码。如果您使用Windows,则可以安装这些工具。

这个工具可以帮你批量编码成UTF-8一堆文件从ANSI,免费的Express版本会做:http://www.rotatingscrew.com/utfcast.aspx

我跑进即使文件被保存在UTF-8这个问题。但是代码包含U+FFFF字符,即invalid by definitionU+FFFE也是如此。

解决方法是使用"\uffff"而不是直接使用字符。