【发布时间】:2013-08-24 11:42:21
【问题描述】:
写一个例子有什么区别? Ansi 和 UTF-8 without BOM 中的 php 或 html 文档,然后将它们上传到网络服务器上?两个文档都包含元 UTF-8。
如果有人简单地用记事本写,他们必须选择 Ansi,因为记事本不提供没有 Byde-Order-Mark 的 UTF-8
【问题讨论】:
标签: html utf-8 character-encoding codepages
写一个例子有什么区别? Ansi 和 UTF-8 without BOM 中的 php 或 html 文档,然后将它们上传到网络服务器上?两个文档都包含元 UTF-8。
如果有人简单地用记事本写,他们必须选择 Ansi,因为记事本不提供没有 Byde-Order-Mark 的 UTF-8
【问题讨论】:
标签: html utf-8 character-encoding codepages
不同之处在于,如果您在某些 8 位代码页中编写文件,然后忘记将其转换为 UTF-8,人们可能会看到您的网页损坏,因为您在 meta 中将字符集设置为 UTF-8 ;并且要尽快应用该错误修复,您无法使用 SFTP 或 WinSCP 访问该文件,因为您必须先再次转换为 8 位代码页。
此外,UTF-8 是 Unicode,支持所有字符,而在“ANSI”代码页中则不支持。并非所有 Unicode 文档都可以转换回“ANSI”代码页,因此您不能以这种方式对其进行编辑。
没有一个理智的人会使用 Windows 记事本进行认真的编码,因为它缺乏功能、语法着色、行尾格式以及对字符集的糟糕支持。
【讨论】:
不同之处在于 UTF-8 和“ANSI”(微软对各种 8 位编码的误称)是完全不同的编码,尽管它们在 ASCII 代码范围 0x00 到 0x7F 上是一致的。
将“ANSI”文件标记为 UTF-8 编码是不正确的。如果数据实际上只包含 ASCII 字符,或者在大多数情况下,如果文件是使用指定正确编码的 HTTP 标头发送的,则该错误不会导致明显的影响。
没有理由不对 UTF-8 编码的 HTML 文件使用 BOM。其他声明的页面要么基于几年前失去所有实际影响的浏览器的信息,要么基于将 HTML 与 PHP 混淆的信息。在 PHP 文件中,BOM 可能会导致问题,因为 PHP 软件无法正确处理 BOM,即在将文件内容插入另一个文件时不会将其删除。
记事本确实无法在没有 BOM 的情况下将文件保存为 UTF-8。因此,在创建或编辑 PHP 文件时,请使用其他程序,例如 Notepad++。如果你必须使用记事本,你只需要适应限制:使用“ANSI”(在找出它在你的环境中是什么之后——它可能是 windows-1252 或其他东西),在 HTTP 标头中声明它并@ 987654323@标签,并使用character references表示“ANSI”中无法表示的字符。
【讨论】: