whe*_*hys 7 .net cmd copy batch-file hidden-characters
我正在使用批处理文件来连接我的所有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
Run Code Online (Sandbox Code Playgroud)
我之前已经在各种项目上做了很多次,但是这个项目使用.NET,文件都是在visual studio中编辑的.
我遇到的问题是在每个文件的末尾添加了一些神秘的隐藏字符,这些字符在连接时会导致生成的css无效.
126 BLOCKQUOTE, Q Lexical error at line 119, column 1. Encountered: "?" (63), after : "" ??? /**** left column ****/
所有单独的CSS文件都会验证,并且只有单个文件加入时才会在组合文件中抛出错误.
问题是因为文件中的字节顺序标记(BOM).字节顺序标记用于unicode文件,以告诉处理器字节的顺序.你可以在这里读更多关于它的内容:
http://en.wikipedia.org/wiki/Byte_order_mark
问题是Visual Studio正在将这些标记添加到您的css文件中,当您通过连接将它们组合在一起时,BOM会在文本的中间结束,从而搞砸了.
当您转到"另存为"对话框时,可以展开"保存"按钮以查看"使用编码保存"选项.这将提示您输入不同的编码,我认为其中一个Unicode选项将遗漏BOM(列表中的某个位置是UTF-8,没有签名).
我不知道默认情况下如何设置Visual Studio使用特定的编码.
为了解决问题,我创建了一个程序来连接符合BOM的文件.我使用它而不是复制,或使用unix cat.
| 归档时间: |
|
| 查看次数: |
3354 次 |
| 最近记录: |