VS編譯utf8源碼時的問題

在VS裏編譯utf8格式的源代碼時,有時會出現以下錯誤:

E:\Projects\back_mdfactory\src\service_context.cpp(33): error C2001: 常量中有換行符
E:\Projects\back_mdfactory\src\service_context.cpp(33): fatal error C1057: 宏擴展中遇到意外的文件結束

原因是VS默認使用帶BOM的UTF8格式源碼編譯,遇到不帶BOM的UTF8源碼時,會當成ANSI格式源碼,導致出現一些莫名奇妙的錯誤。方法有幾種:

1、將源碼從不帶BOM的UTF8改爲帶BOM的UTF8源碼,這個會對跨平臺開發有影響,因爲Linux默認是不帶BOM源碼。

2、在源碼的中文字符串後面加一個空格或是其他字符,這個會強行改變源碼內容

3、修改VS工程屬性,C/C++ -> 命令行 的其他選項裏,增加/utf8,這個最合適,但貌似要求VS2015 Update 1以上版本。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章