Я изучаю язык C. Мне нужно создать текстовый файл с данными Unicode. Я написал такой код:Недопустимые локализованные символы в текстовом файле
#include<stdio.h>
#include<stdlib.h>
#include<wchar.h>
int main(int argc, char *argv[]) {
wchar_t *s1 = L"Привет, мир!\n";
wchar_t *s2 = L"Hello, World!";
FILE *fp = fopen("./hello.txt", "w");
fputws(s1, fp);
fputws(s2, fp);
fclose(fp);
exit(EXIT_SUCCESS);
}
Но я получаю такой результат:
??????, ???!
Hello, World!
Почему я не получаю русских символов?
Пожалуйста, объясните, как вы просматриваете файл –
я открыть его в Gedit (Linux). –
Какая кодировка gedit считает файл? Соответствует ли это фактической кодировке? И если вы используете Linux, то я подозреваю, что UTF-8 будет предпочтительной кодировкой. –