Запись в файл Кириллицей, С
столкнулся с такой проблемой, при записи информации в файл из переменной куда были введены данные на Кириллице выходят иероглифы, хотя установлена <locale.h> и кодировка UTF-8. компилятор gcc, IDE VS Code, стандарт C99. Пример кода:
setlocale(LC_ALL, "ru_RU.UTF-8");
// Open file
FILE *file = fopen(file_name, "w");
if (file == NULL)
{
perror("Error opening file");
return 1;
}
//write to file
if (strcmp(phone_model, "7841") == 0) {
fprintf(file, "[%s](cisco-7841,insecure-mode)\n"
"secret=pass%s\n"
"callerid=\"%s\" <%s>\n"
"description=SEP%s/%s\n"
"context=%s\n"
"callgroup=%s\n"
"pickupgroup=%s\n"
"mailbox=%s@default\n"
"subscribe=%s*%s\n",
phone_number, phone_number, fullname, phone_number, mac_address, fullname,
phone_number, phone_number, phone_number, phone_number, phone_number, phone_number);}
//else if (strcmp(phone_model, "7842") == 0) {
// fprintf(file, "Model: 7842\n");}
//else {
// fprintf(file, "Model: %s\nInformation not available.\n", phone_model);}
fclose(file);
Источник: Stack Overflow на русском