簡體   English   中英

刪除visual studio中的隱藏文件結束字符(BOM)

[英]Removing hidden file end characters (BOM) in visual studio

我正在使用批處理文件來連接我的所有css文件

copy /b reset.css+action-plan.css+buttons.css+behaviours.css+footer.css+forms.css+header.css+home.css+layout.css+lightbox.css+print.css+questionnaire.css+typography.css+you-told-us.css main.css

我之前已經在各種項目上做了很多次,但是這個項目使用.NET,所有文件都在visual studio中編輯。

我遇到的問題是在每個文件的末尾添加了一些神秘的隱藏字符,當連接時,會導致生成的css無效。

  126 BLOCKQUOTE,Q第119行第1列的詞匯錯誤。\n  遇到:“?”  (63),之后:“”???  / ****左欄**** / 

所有單獨的CSS文件都會驗證,並且只有單個文件加入時才會在組合文件中拋出錯誤。

問題是因為文件中的字節順序標記(BOM)。 字節順序標記用於unicode文件,以告訴處理器字節的順序。 你可以在這里讀更多關於它的內容:

http://en.wikipedia.org/wiki/Byte_order_mark

問題是Visual Studio正在將這些標記添加到您的css文件中,當您通過連接將它們組合在一起時,BOM會在文本的中間結束,從而搞砸了。

當您轉到“另存為”對話框時,可以展開“保存”按鈕以查看“使用編碼保存”選項。 這將提示您輸入不同的編碼,我認為其中一個Unicode選項將遺漏BOM(列表中的某個位置是UTF-8,沒有簽名)。

我不知道默認情況下如何設置Visual Studio使用特定的編碼。

為了解決問題,我創建了一個程序來連接符合BOM的文件。 我使用它而不是復制,或使用unix cat。

您可能希望使用YUICompressor .NET ,而不是自己編寫腳本。

我編寫了一個漂亮的小命令行程序 ,它將所有文件(即css等)組合在一個目錄中,並為您刪除BOM(字節順序標記)。 這是大約5行代碼,並使用cssmin.js來處理縮小。 還有一個示例,說明它在Visual Studio后期構建事件中的外觀。 檢查o

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM