【发布时间】:2014-01-31 21:15:54
【问题描述】:
我有一个一直在使用 windows-1252 的测试站点。他们确实需要/使用一些符号,例如平方根符号。而且他们不需要以英语以外的其他语言显示。由于一些安全问题,我最近被要求将其切换为 UTF-8。在我将其更改为 UTF-8 之后,平方根和其他符号(从 Oracle DB 中提取并通过 ColdFusion 传递)将在生成的网页上正常显示。但是,如果我再次保存文档(发布到数据库,页面刷新),符号就会变成奇怪的字符。如果我再次保存,会出现更多奇怪的字符。所以...
- 如果我不需要除英语以外的任何内容,那么坚持使用 windows-1252 有什么问题吗?有任何安全/黑客问题吗?
- 如果您使用的是不使用 UTF-8,是否有任何影响 HTML5(因为这是 HTML5 的默认编码)?
- 如果它建议我切换到 UTF-8,我如何获得当前 存储的平方根符号(和其他符号)可以工作吗?
我已经阅读了所有这些页面,但仍无法完全理解。希望有人在这里帮助我澄清。谢谢!
- https://www.owasp.org/index.php/Canonicalization,_locale_and_Unicode
- 很好地描述了 UTF-8 是如何产生的,为什么它很棒,以及它解决的问题...... https://www.youtube.com/watch?v=MijmeoH9LT4
- http://www.w3.org/International/questions/qa-choosing-encodings“如果可以,请使用 UTF-8”。 “事实上,HTML5 规范草案目前说“鼓励作者使用 UTF-8。一致性检查器可能会建议作者不要使用旧编码。创作工具应该默认为新创建的文档使用 UTF-8。”
- http://www.w3schools.com/tags/ref_charactersets.asp“对于 HTML5,默认的字符编码是 UTF-8。”
- 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)?。
【问题讨论】:
-
有很多关于字符集和编码的 FUD 和错误信息。尽管某些编码(例如 UTF-7)存在安全问题,但 WIN-1252 不是其中之一。 w3schools 又错了,UTF-8 不是“HTML5 的默认编码”。 HTML5的默认编码不是一件简单的事情。
标签: html oracle encoding utf-8 coldfusion