C語言 windows下Ansi和UTF-8編碼格式的轉換
阿新 • • 發佈:2021-07-07
當我們使用MinGW-w64作為編譯器在windows系統環境下進行C語言程式設計時,如果原始碼檔案(.c)儲存格式為Ansi格式,則在列印漢字時不會出現亂碼;反之,如果我們使用UTF-8格式儲存,則會出現亂碼,需要在編譯時加上“-fexec-charset=gbk”來解決亂碼問題。
#include <stdio.h> int main() { printf("%s\n", "你好,世界!"); return 0; }
那麼,當我們使用C語言處理檔案時,如果檔案格式是UTF-8,如何轉換成Ansi格式呢?注意:在windows下,txt的儲存格式中有UTF-8和帶有BOM的UTF-8兩個選項。如果選擇帶有BOM的UTF-8選項,則在讀取檔案時會首先讀到三個標誌著這個檔案是由UTF-8格式編碼的字元,分別為EF BB BF。如果選擇UTF-8,則不會有這三個字元,而是直接一開始就讀到檔案本身內容。詳情請看: https://blog.csdn.net/wang544831183/article/details/82349668