我们的源代码包含每个CSS文件顶部的版权......
/ *版权所有©... * /
每次Firefox样式编辑器加载CSS文件时,都会在版权符号...
之前插入一个特殊字符/ *版权所有©... * /
每次加载文件时都会添加一个额外的特殊字符。我不相信这仅限于Firefox,但这就是我目前用于CSS动态样式的东西。每次都要删除这个char很烦人,偶尔会进入提交并推送它。
问题:如何防止特殊字符插入?
答案 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编码中有字节0xC2
或11000010
。
当遇到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编码
μ
将显示为
Aμ
如果错误地解释为ANSI。
也许,这样做是为了保留一些有关原始字符的信息,如果发生了编码错误。
答案 1 :(得分:0)
不要使用版权符号本身,而要使用其数字:
©
答案 2 :(得分:0)
检查是否在你的 html head 中设置了正确的 charset-meta-tag
<meta charSet="UTF-8"/>