在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以上版本。
MySQL使用utf8時的錯誤
incorrect string value xf0 x9f x98 x83 for column summary at row 1這個錯誤的主要原因在於,mysql 的 utf8 編碼上不是真正意義上的 utf 8。mysql的 utf8 只支援每個字元最多三個位元組,而真正的 utf 8 是每個...
web中的utf8問題
1 瀏覽器會根據content text html charset gbk 來解析該用什麼編碼來把這些位元組流decode成字串,並顯示 2 當客戶端提交表單的時候,比如以post方式提交,瀏覽器同樣會根據上面的編碼,把這些字串encode成位元組流,傳送到服務端 3 在服務端,預設就會認為傳過來的...
UTF 8編碼的空格(194 160)問題
前台的字串傳遞到後台進行處理,發現了乙個較詭異的問題 字串中的乙個空格 ascii 32 被utf 8編碼之後變成了乙個詭異的字元 ascii 194 和 160的組合 但在後台其表象還是空格。在utf 8編碼裡面存在乙個特殊的字元,其編碼是 0xc2 0xa0 轉換成字元的時候表現為乙個半角空格,...