删除Visual Studio中的隐藏文件结束符(BOM)

| 我正在使用批处理文件来连接我所有的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列的词法错误。  遇到:\“?\”(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     

要回复问题请先登录注册