代码之家  ›  专栏  ›  技术社区  ›  Tyler

为什么loadURIWithFlags不使用我传递给它的字符集?

  •  0
  • Tyler  · 技术社区  · 14 年前

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

    我试着包括 LOAD_FLAGS_BYPASS_CACHE LOAD_FLAGS_CHARSET_CHANGE 但那似乎没有任何效果。我还检查了自动检测是否关闭,所以这也不是问题所在。添加 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 这个文档似乎解决了这个问题,但是我希望使用 loadURIWithFlags

    1 回复  |  直到 14 年前
        1
  •  1
  •   Tyler    14 年前

    您做了正确的事情,唯一的解决方案是在文档中包含编码信息,因为如果您只依赖HTTP头,那么当文档保存在磁盘上时,您将无法加载文档(因为没有文件头这样的东西)。

    UTF-8 BOM 以确保Firefox或其他应用程序正确加载该文件。