2017-03-23 66 views
0

我們的源代碼包含在每一個CSS文件的頂部版權...特殊字符「A」之前版權符號插入

/*版權所有©... */

每次CSS文件通過Firefox的樣式編輯器加載,特殊字符插入版權符號之前...

/*版權©... */

它每個加載文件時增加了一個額外的特殊字符。我不認爲這僅限於Firefox,但這就是我現在使用CSS動態樣式的原因。每次都必須刪除此字符並且偶爾會進入提交和推送,這很煩人。

問題:如何防止特殊字符插入?

+0

插入一個明確的@charset「UTF-8」;在每個.css文件的頂部不起作用。 – jmelvin

回答

0

我的建議是打開​​中的文件並檢查檢測到的編碼,如編碼菜單下顯示的那樣。我期望它會讀取:

編碼爲UTF-8

如果是這樣,應用轉換爲UTF-8 BOM。它會在您的文本文件中添加3 魔術字節,從而使UTF-8編碼清晰。保存這些文件並查看它是否有效。

說明

這樣做的原因Â出現,是有些工具不正確地檢測的編碼和假定它是ANSI(又名Windows-1252)或ISO 8859-1。這些單字節編碼和UTF-8與普通英文文本和代碼文件非常相似。標準ASCII集的編碼方式完全相同。只有特殊字符,如你的情況,版權符號,使用四個字節中的兩個,三個而不是一個來編碼。

現在,版權符號具有字節0xC2 0xA9 or 11000010 10101001 in UTF-8 encoding和字節0xA9 in ANSI encoding

拉丁文大寫字母A帶有回調符的字節爲0xC211000010,採用ANSI編碼。

11000010 10101001遇到並與第二字節的前兩個比特解釋爲UTF-8,第一三個比特,第一個字節,110的,在組合,10,表明the start of a two-byte UTF-8 character。所以這是版權符號的正確UTF-8編碼。

但是,如果遇到並解釋爲11000010 10101001,則會看到兩個單獨的字符,即?和©。

我認爲©的UTF-8編碼的第二個字節與單字節ANSI編碼相同並不是巧合。它看起來好像the Latin-1 supplement以UTF-8的格式插入到same order as it has in ANSI,並且具有相同的偏移量,從而使第二個字節保持相同。例如。一個UTF-8編碼

μ

將顯示爲

如果錯誤地解釋爲ANSI。

也許,這是爲了保留一些關於原始字符的信息,如果發生了編碼錯誤。