在C語言中,寫入文件出現亂碼的問題通常是由于文件編碼與寫入內容編碼不一致所導致的。
解決方法如下:
FILE *file = fopen("file.txt", "w, ccs=UTF-8");
const char *content = "你好世界";
fwrite(content, sizeof(char), strlen(content), file);
iconv
庫來進行編碼轉換:#include <iconv.h>
// 創建轉換句柄
iconv_t cd = iconv_open("UTF-8", "GBK");
// 定義輸入和輸出緩沖區
char *input = "你好世界";
size_t input_len = strlen(input);
char output[1024];
size_t output_len = sizeof(output);
// 進行編碼轉換
iconv(cd, &input, &input_len, &output, &output_len);
// 寫入文件
fwrite(output, sizeof(char), sizeof(output) - output_len, file);
// 關閉轉換句柄
iconv_close(cd);
通過以上方法,可以避免在C語言寫入文件時出現亂碼的問題。