當我們使用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

char.h
main.c

Resistance is Futile!

