【问题标题】:Special char added to css (​) where did this come from?添加到 css 中的特殊字符 (​) 这是从哪里来的?
【发布时间】:2012-06-15 15:09:46
【问题描述】:

我在 notepad++ 中进行了一系列搜索替换操作,以有效地缩小我的 css - 主要是删除空格/制表符等...)这最终破坏了我的大部分 css。

显然到处都插入了一个奇怪的字符(​))在没有 BOM 的 UTF-8 中使用 notepad++,我看不到这些,但它们出现在视图源中。

我可以通过在 ANSI 编码中进行搜索替换来删除这些字符,但我的问题是,这个字符是什么,为什么它会出现?

【问题讨论】:

  • 您是否知道您的代码是否从 MS Word 等应用程序中粘贴?

标签: css utf-8 character-encoding notepad++ replace


【解决方案1】:

在 Firefox 中使用 web 开发者插件或 ext,您可以在 css 文档中看到问题字符。

在 Visual Studio 中,我只能看到:

}
.t

Web 开发人员显示了一个不需要的隐藏字符,即顶部带有插入符号的“a”:

}
â.t

上面的 utf 编码器链接揭示了这一点

} (the encoded character for ampersand)
.t   

还有这个

但只需通过删除和重新键入来解决问题。

【讨论】:

    【解决方案2】:

    当字符串“​”被误解为 windows-1252 编码数据时,它是 ZWSP 的 UTF-8 编码形式。 (使用漂亮的UTF-8 decoder 对此进行了检查。)这解释了为什么您在 UTF-8 模式下的 Notepad++ 中看不到它; ZWSP(零宽度空格)是一个没有宽度的不可见字符。

    显然浏览器将样式表解释为 windows-1252 编码。 with BOM 保存文件可能会有所帮助,因为这样浏览器可能会更好地猜测编码。真正的解决方法是确保(以依赖于服务器的方式)服务器为 CSS 文件发送适当的 Content-Type 标头。

    但如果这是您的 CSS 文件中唯一的非 Ascii 字符,那么在您删除有问题的数据之后,这实际上并不重要。

    我不知道有什么简单的方法可以让 Notepad++ 插入 ZWSP(当然你可以在系统中使用通用的字符插入工具),所以它的来源有点神秘。也许通过从某个地方复制和粘贴。

    【讨论】:

    • 仅供读者参考:多年前,我看到这个开始出现在我的外部 JS 文件中,而 IE 拒绝运行我的 JS。我发现这是由于 Adob​​e GoLive 中的设置不当引起的编码问题。如果我没记错的话,这个字符是 GoLive 在 FTP 上传到服务器时插入的。现在我不再使用所见即所得的编辑器了。
    • 太棒了,谢谢!如果您有 .htaccess sn-p 以确保我的 css 的内容类型正确,则可以加分;-)
    • Zach L,如果您的 .css 文件是 UTF-8 编码的(并且任何纯 ASCII 文件都是普通的),您可以在 .htaccess 中使用以下内容:AddType text/css;charset=utf-8 css
    猜你喜欢
    • 2017-09-01
    • 2022-01-14
    • 2015-12-31
    • 1970-01-01
    • 2017-11-11
    • 2018-02-26
    • 1970-01-01
    • 1970-01-01
    • 2017-08-15
    相关资源
    最近更新 更多