html - 使用 windows-1252 而不是 UTF-8 有什么问题

标签 html oracle encoding utf-8 coldfusion

我有一个一直在使用 windows-1252 的测试站点。他们确实需要/使用一些符号,例如平方根符号。他们不需要用英语以外的其他语言显示。由于一些安全问题,我最近被要求将其切换为 UTF-8。在我将其更改为 UTF-8 后,平方根和其他符号(从 Oracle 数据库中提取并通过 ColdFusion 传递)将在生成的网页上正常显示。但是,如果我再次保存文档(发布到数据库,页面刷新),这些符号就会变成奇怪的字符。如果我再次保存,会出现更多奇怪的字符。所以……

  1. 如果我不需要英语以外的任何东西,坚持使用 windows-1252 有什么问题吗?有任何安全/黑客问题吗?
  2. 如果您使用 HTML5(因为这是 HTML5 的默认编码)?
  3. 如果建议我切换到 UTF-8,我如何获取当前的 存储的平方根符号(和其他符号)可以工作吗?

我已经阅读了所有这些页面,但仍然难以理解所有内容。希望有人在这里帮助我澄清。谢谢!

  1. https://www.owasp.org/index.php/Canonicalization,_locale_and_Unicode
  2. 很好地描述了 UTF-8 是如何产生的、为什么它很棒,以及它解决的问题...... https://www.youtube.com/watch?v=MijmeoH9LT4
  3. http://www.w3.org/International/questions/qa-choosing-encodings “如果可以,请使用 UTF-8”。 “事实上,HTML5 规范草案目前表示“鼓励作者使用 UTF-8。一致性检查员可能会建议作者不要使用旧编码。创作工具应默认为新创建的文档使用 UTF-8。”
  4. http://www.w3schools.com/tags/ref_charactersets.asp “对于 HTML5,默认的字符编码是 UTF-8。”
  5. http://www.joelonsoftware.com/articles/Unicode.html

* * * 更新 * * *

到目前为止,我感谢所有帮助使这更容易理解的人。 我将简化原来的 3 个问题,希望能得到一个明确的答案,所以这里是:客户不需要其他语言的支持,他们将使用一些 HTML5 标签和 TON通过 jQuery.ajax() 来回发送的 JSON/XML 流量。鉴于该信息,从安全的角度来看,将数据库设置为 NLS_CHARACTERSET: WE8MSWIN1252 是否有任何问题?网页设置为 <CFHEADER NAME="Content-Type" value="text/html; charset=windows-1252"> ?谢谢。

这是另一个与这个问题略有不同的问题:Why am I able to use a character that's not part of a charset (windows-1252)? .

最佳答案

Windows 1252 是众多固定大小字符集之一。 Mac 有自己的一套。欧洲不同地区和世界其他一些地区有一些 ISO。它们中的大多数都略有不同。

好处是你有一个固定大小的字符,这意味着无论如何 1 个字符 = 1 个字节。

缺点是:

  • 有些人可能没有安装您的编码
  • 有些人可能会使用稍微不同的编码,导致很少的问题,不明显,但从长远来看非常难看
  • 您只能支持几种语言

这包括您想要引用的任何内容。在 windows-1252 中你不能显示俄语、希腊语、波兰语......

UTF-8 是 1+ 字节 unicode 表示的标准编码。它可以代表您可能遇到的绝大多数字符,尽管它是为基于拉丁语的语言设计的,因为其他语言会占用更多存储空间。

它用于 XML、JSON 和您可能发现的大多数类型的 Web 服务。当您不知道使用什么编码时,这是一个很好的默认值。它允许限制编码问题的数量,例如“我虽然你使用的是 Latin-1/不,我使用的是 latin-9,但后来这个人在 mac 上使用了 Roman”。如果您有超过 1 个人在处理网站内容,他们的平台上可能有不同的编码,因此您的内容有时可能会困惑。

据我所知,UTF-8 是无需讨论即可轻松标准化人们之间使用的编码的唯一方法。

典型的例子是,如果你的网站是用 windows1252 编码的,而新开发者有一台 mac,你可能会遇到麻烦。

关于html - 使用 windows-1252 而不是 UTF-8 有什么问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21490197/

相关文章:

jquery - 与 Firefox 和 IE 相比,Chrome 非常慢

windows - SQL 加载程序 : writing batch file (windows) for processing multiple data file

python - PyMysql编码问题

rust - 在 Rust 中使用 serde 对包含具有无效 utf-8 字符的路径的 PathBuf 进行编码

javascript - 多边形倾向于在旋转时收缩

javascript - Bootstrap Collapse Accordion Hover 不一致

html - 邮件中的图像上的图像

sql - 转储所有模式和触发器并将它们导入另一个 Oracle 数据库

oracle - 非法使用 LONG 数据类型 Oracle

android - Base64 编码导致最后有很多空格(我无法识别的空白字符)