在记事本+ +我是做了一大堆的搜索替换操作,以有效地运行如下我的CSS - 主要是去除空格/制表符等)这最终打破很多我的CSS的。
显然,一个奇怪的字符(€<)插入所有的地方)的UTF-8使用记事本+无BOM,我看不到这些,但它们出现在查看源代码。
我能够做的ANSI编码搜索替换删除这些,但我的问题是,这是什么性质的,为什么它会出现?
在记事本+ +我是做了一大堆的搜索替换操作,以有效地运行如下我的CSS - 主要是去除空格/制表符等)这最终打破很多我的CSS的。
显然,一个奇怪的字符(€<)插入所有的地方)的UTF-8使用记事本+无BOM,我看不到这些,但它们出现在查看源代码。
我能够做的ANSI编码搜索替换删除这些,但我的问题是,这是什么性质的,为什么它会出现?
字符串“a€<”是ZWSP的UTF-8编码的形式时,作为窗口1252的编码数据曲解。 (在使用一个不错的经过UTF-8解码器 )。这解释了为什么你不UTF-8模式下看到它在记事本++; ZWSP(零宽度的空间)是一个不可见的字符,没有宽度。
显然,浏览器解释样式表的窗口1252编码。 保存与 BOM的文件可能会有所帮助,因为那么浏览器可能会猜测编码更好。 真正的解决方法是确保(以依赖服务器的方式)服务器的CSS文件发送适当的Content-Type头。
但是,如果这是你的CSS文件中唯一的非ASCII字符,它不会影响实际,您已删除有问题的数据之后。
我不知道有什么简单的方法,使记事本+ +插入ZWSP(你当然可以使用系统中的普通字符插入公用事业),所以这是一个有点神秘它是从哪里来的。 或许,通过从某处复制和粘贴。
在Firefox中使用的web开发插件或分机就可以看到css文件中的问题人物。
在Visual Studio中所有我能看到的是:
}
.t
Web开发人员显示出不必要的隐藏人物,一个“A”,顶部尖号:
}
â.t
上面的UTF编码器链接透露了这一
} (the encoded character for ampersand)
.t
和这个
但简单地修复,删除和重新输入问题。