我在notepad ++中做了一堆搜索替换操作,以有效地缩小我的CSS - 大多数删除空格/标签等...)这最终打破了我的大部分CSS。
显然在整个地方都插入了一个奇怪的字符(â€<)。在没有BOM的UTF-8中使用notepad ++,我看不到这些,但它们出现在一个视图源中。
我能够通过ANSI编码中的搜索替换来删除这些,但我的问题是,这个角色是什么,为什么它会出现?
答案 0 :(得分:2)
字符串“ - ”是ZWSP的UTF-8编码形式,当被误解为windows-1252编码数据时。 (使用漂亮的UTF-8 decoder检查了这一点。)这解释了为什么在UTF-8模式的Notepad ++中没有看到它。 ZWSP(零宽度空间)是一个没有宽度的不可见字符。
显然,浏览器将样式表解释为windows-1252编码。使用 BOM保存文件可能有所帮助,因为那时浏览器可能会更好地猜测编码。真正的解决方法是确保(以服务器相关的方式)服务器为CSS文件发送适当的Content-Type标头。
但如果这是CSS文件中唯一的非Ascii字符,那么在删除有问题的数据后,实际上并不重要。
我不知道有什么简单的方法可以让Notepad ++插入ZWSP(你当然可以在系统中使用通用的字符插入实用工具),所以它来自于它有点神秘。也许是从某处复制粘贴。
答案 1 :(得分:0)
在Firefox中使用Web开发人员插件或ext可以看到css文档中的问题字符。
在Visual Studio中我只能看到:
}
.t
Web开发人员展示了一个不需要的隐藏角色,一个带有插入符号的“a”:
}
â.t
上面的utf编码器链接显示了这个
} (the encoded character for ampersand)
.t
和这个
但只需通过删除和重新输入来解决问题。