在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语言写入文件时出现乱码的问题。