Изменение языкового стандарта не изменит фактические данные, записанные в файл с помощью write (). Вы действительно должны произвести UTF-8 символов, чтобы записать их в файл. Для этого вы можете использовать библиотеки как ICU .
Изменить после редактирования вопроса : символы UTF-8 отличаются от ISO-8859 только «специальными» символами (ümlauts, áccénts и т. Д.). Таким образом, для всего текста, который не имеет ни одного из этих символов, оба являются эквивалентными. Однако, если вы включаете в свою программу строки с этими символами, вы должны убедиться, что ваш текстовый редактор обрабатывает данные как UTF-8. Иногда вам просто нужно сказать это.
Подводя итог, вы получите текст в формате UTF-8, если строки в исходном коде в формате UTF-8.
Другое редактирование : Просто чтобы быть уверенным, вы можете преобразовать свой исходный код в UTF-8, используя iconv:
iconv -f latin1 -t utf8 file.c
Это преобразует все ваши строки из латиницы-1 в utf8, и когда вы их напечатаете, они точно будут в UTF-8. Если iconv встречает странный символ или вы видите выходные строки со странными символами, значит, ваши строки уже были в UTF-8.
С уважением,