在版权符号之前插入特殊字符''

时间:2017-03-23 03:56:22

标签: firefox character-encoding stylesheet

我们的源代码包含每个CSS文件顶部的版权......

/ *版权所有©... * /

每次Firefox样式编辑器加载CSS文件时,都会在版权符号...

之前插入一个特殊字符

/ *版权所有©... * /

每次加载文件时都会添加一个额外的特殊字符。我不相信这仅限于Firefox,但这就是我目前用于CSS动态样式的东西。每次都要删除这个char很烦人,偶尔会进入提交并推送它。

问题:如何防止特殊字符插入?

3 个答案:

答案 0 :(得分:0)

我的建议是打开Notepad++中的文件并检查检测到的编码,如编码菜单中所示。我希望它会读到:

  

以UTF-8编码

如果是,请将转换为UTF-8-BOM 。它将在文本文件中添加3个 magic 字节,使UTF-8编码显式化。保存文件,看看它是否有效。

<强>解释

出现这种情况的原因是某些工具没有正确检测编码并假设它是ANSI(a.k.a。Windows-1252)或ISO 8859-1。对于普通的英文文本和代码文件,这些单字节编码和UTF-8非常相似。标准ASCII集以完全相同的方式编码。只有特殊字符(如您的情况下)版权符号的编码方式不同,使用两个,三个四个字节,而不是一个。

现在,版权符号包含字节0xC2 0xA9 or 11000010 10101001 in UTF-8 encoding和字节0xA9 in ANSI encoding

带有抑扬符号的拉丁文大写字母A 在ANSI编码中有字节0xC211000010

当遇到11000010 10101001并解释为UTF-8时,第一个字节的前三位110与第二个字节的前两位{{1}组合在一起},表示the start of a two-byte UTF-8 character。所以这是版权符号的正确UTF-8编码。

但是,如果遇到10并将其解释为ANSI,则会看到两个单独的字符,Â和©。

我认为©的UTF-8编码的第二个字节与单字节ANSI编码相同并非巧合。看起来the Latin-1 supplement在UTF-8中插入恰好same order as it has in ANSI且具有相同的偏移量,使第二个字节相等。例如。 UTF-8编码

  

μ

将显示为

  

如果错误地解释为ANSI。

也许,这样做是为了保留一些有关原始字符的信息,如果发生了编码错误。

答案 1 :(得分:0)

不要使用版权符号本身,而要使用其数字:

&#169;

答案 2 :(得分:0)

检查是否在你的 html head 中设置了正确的 charset-meta-tag

<meta charSet="UTF-8"/>