Javascript 为什么loadURIWithFlags不使用I';我要过去吗?

Javascript 为什么loadURIWithFlags不使用I';我要过去吗?,javascript,firefox,file-io,character-encoding,firefox-addon,Javascript,Firefox,File Io,Character Encoding,Firefox Addon,我有一个HTML文档存储在一个文件中,采用UTF-8编码,我希望扩展名在浏览器中显示此文件,因此我调用loadURIWithFlags('file://'+file.path,flags,null,'UTF-8',null)但它作为ISO-8859-1而不是UTF-8加载。(我能分辨出来,因为在“查看”>“字符编码”菜单上选择了ISO-8859-1,并且非中断空格字符显示为一个后跟一个空格。如果我使用“字符编码”菜单切换到UTF-8,那么一切看起来都正常。) 我尝试在标志中包括LOAD\u FL

我有一个HTML文档存储在一个文件中,采用UTF-8编码,我希望扩展名在浏览器中显示此文件,因此我调用
loadURIWithFlags('file://'+file.path,flags,null,'UTF-8',null)但它作为ISO-8859-1而不是UTF-8加载。(我能分辨出来,因为在“查看”>“字符编码”菜单上选择了ISO-8859-1,并且非中断空格字符显示为一个
后跟一个空格。如果我使用“字符编码”菜单切换到UTF-8,那么一切看起来都正常。)


我尝试在标志中包括
LOAD\u FLAGS\u BYPASS\u CACHE
LOAD\u FLAGS\u CHARSET\u CHANGE
,但似乎没有任何效果。我还检查了自动检测是否已关闭,因此这也不是问题所在。将
添加到文档中似乎解决了问题,但我希望使用
loadURIWithFlags
的'charset'参数也可以工作,因此,我想知道我在最初的尝试中是否做错了什么。

您做的是正确的,唯一的解决方案是在文档中包含编码信息,因为如果您仅依赖HTTP头,则在将文档保存到磁盘上时将无法加载文档(因为没有文件头)


如果您是保存文件的人,您可以将添加到文件中,以确保Firefox或其他应用程序能够正确加载该文件。

好主意!我想我没有意识到有UTF-8 BOM这样的东西——我以为它只适用于像UTF-16这样的编码,每个字符至少使用两个字节。维基百科拯救我们!(我为您的答案添加了一个链接。)