我正在使用 Dreamweaver CS3,当我构建应用程序时,我忘记确保编码设置为 UTF8。
我检查了所有文件,并将编码从西欧改为 UTF8。这没什么问题,直到我注意到有些文件在重新打开时又恢复为西欧编码。
无论我多少次将编码改回来(使用 ctrl+j 并选择页面属性中的下拉菜单)并保存文件,打开时它仍然会恢复为西方编码。
这似乎只发生在某些文件上,有些文件没有问题。我尝试用 UTF8 创建一个新文件,并将旧文件的内容复制到其中。问题仍然存在,所以我认为该文件可能包含奇怪的字符,导致 Dreamweaver“智能地”更改编码。
欢迎任何想法。非常感谢。
答案1
编码为 UTF-8 的文件不一定需要任何特殊标记(所谓的字节顺序标记或“BOM”)来表明它们是这样编码的。
这取决于你的设置Dreamweaver 是否添加此类标记。特别是对于非 HTML 文件,通常建议不是根本无法为 UTF-8 添加这样的标记。就像 CSS 文件中的 BOM 一样据说有时会导致文件中的初始规则在某些浏览器中失败。在版本 6 之前,PHP 只会考虑 BOM作为输出, 哪个可能会产生“无法修改标题信息 - 标题已发送”错误。
在打开没有标记的文件时,计算机程序有几个选项来确定编码:扫描文档的前 100 个字节以查看其中的内容,或者(如 XML 和 HTML 文件)信任文档中指定为人类可读文本的某些编码的值。如果所有方法都失败:当编码未知时,只需使用一些默认值即可。
因此,有几件事需要检查:
Dreamweaver 正确检测为 UTF-8 的文件和检测为 Western 的文件是否使用了 BOM?在 Mac 上,打开终端并运行:
文件 my-file.html
...可能会产生类似这样的结果:
my-file.html:UTF-8 Unicode(带 BOM)文本,带 CRLF 行终止符
在 Windows 上,你可以在以下位置找到相同的命令赛格威。或者使用十六进制编辑器查看第一个字节(EF BB BF 表示 UTF-8 BOM)。或者将浏览器设置为明确使用 Western 并执行查看源代码(或使用不支持 UTF-8 的旧编辑器)以查看它是否将第一个字节显示为奇怪的字符,例如

。那么这就是您的 UTF-8 BOM。(如果你发现
ÿþ
或þÿ
那么它是 UTF-16。糟糕,除非你写的是中文!在这个答案中没有看到任何有趣的字符?然后阅读有关使用“Arial Unicode MS”的信息让 Dingbats 出现在 Firefox 3 中吗?)文件内部是否指定了编码?例如:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
(在 HTML 文件中,应指定 Content-Type前标签
<title>
。如果两者都存在:它们匹配吗?
如果 Dreamweaver 认为某个文件不是 UTF-8:这有关系吗?那么:该文件中是否有特殊字符?纯 ASCII 文件在保存为 UTF-8 时不会发生变化(除非以 BOM 为前缀)。
(请注意,我假设你仍在使用本地文件。如果内容实际上是从 Web 服务器获取的,那么还有 Content-Type HTTP 标头。请参阅Firefox 在网页上显示乱码然后。将文件上传到 Web 服务器后,您需要确保 Web 服务器在其 Content-Type 标头中发送相同的编码。)
答案2
我只需要处理一次不同的编码,就得到与您所说的类似的结果。
我认为这是由于 Dreamweaver 忘记/无法检测某些文件的设置。
我改变了这个选项并且它对我来说效果很好:
编辑 > 首选项 > 新建文档...单击复选框“默认编码:”/“打开未指定编码的现有文件时使用”
答案3
菜单修改 > 页面属性 > 编码 并指定要将文档转换为的编码
享受!
答案4
我认为如果您想从 Dreamweaver 上的 utf-8 文件中删除 whe BOM(创建文件),您应该执行以下操作:
我试过,效果很好,你可以自己尝试看看
在 Dreamweaver 上:
1º进入设置;
2º 在类别菜单上单击“新文件”或“新文档”
3º 第一个复选框必须被选中,并且默认编码需要是 utf-8
1º 转到“ C:\Program Files (x86)\Adobe\Adobe Dreamweaver CS6 ”
2º 搜索 Default.php 和 Default.dwt.php
3º 以管理员权限打开 notepad++
4º 选择两个文件
5º 右键单击并选择使用 notepad++ 编辑
在记事本++中:
在 each 文件上执行以下操作:
1º 点击顶部栏上的编码
2º 在子菜单上单击:“转换为 utf-8 widout BOM”
3º保存文件