gpt4 book ai didi

Firefox 和 UTF-16 编码

转载 作者:行者123 更新时间:2023-12-03 18:13:15 24 4
gpt4 key购买 nike

我正在构建一个编码为 UTF-16 的网站。这意味着每个文件(html,jsp)都以 UTF-18 编码,我在每个 HTML 页面的头部设置:

<meta http-equiv="content-type" content="text/html; charset=UTF-16">

我的索引页被 Chrom 和 IE 正确显示。但是,firefox 不呈现索引。它显示 2 个奇怪的字符和完整的索引页代码:
��<!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-16"> ...

你知道原因吗?应该是编码的问题,但是我不知道它位于哪里......

谢谢

最佳答案

(披露:我是Firefox中相关代码的开发者。)

I'm building a website with the encoding UTF-16.



请不要。简短的规则是:
  • 切勿使用 UTF-16 进行交换。
  • 始终使用 UTF-8 进行交换。
  • 如果您违反规则 1 和 2 并仍然使用 UTF-16,至少使用 BOM(正确的)。
  • 但说真的,不要违反规则 1 和 2。

  • 如果您在页面上包含用户提供的内容,使用 UTF-16 意味着您的网站至少在旧浏览器中容易受到社会工程 XSS 的攻击。试试 this demo在旧版本的 Firefox(版本 20 或更早版本)或基于 Presto 的 Opera 版本中。

    为避免此漏洞,请使用 UTF-8。

    It means that every files (html,jsp) is encoded in UTF-18



    哦哦。 :-)

    and I set in the head of every HTML page : <meta http-equiv="content-type" content="text/html; charset=UTF-16">



    只有当使用的编码将元标记的字节映射到 ASCII 相同的字节时,元标记才用作内部编码声明。 UTF-16 不是这种情况。

    Do you know the reason?



    在十六进制编辑器中并非没有完整的响应头和原始响应正文。如上所述,一般的解决方案是始终使用 UTF-8,而不是通过 HTTP 使用 UTF-16。

    如果您的内容使用 UTF-16 比 UTF-8 更紧凑的语言,则有两件事:
  • 页面上的所有 HTML、JS 和 CSS 在 UTF-8 中都更加紧凑。
  • gzip 使差异消失。
  • 关于Firefox 和 UTF-16 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8169278/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com