Есть ли способ заставить gcc использовать кодировку latin1 для строковых литералов? Я могу использовать префикс u8 для получения строковых литералов в кодировке utf-8, но как я могу использовать строковые литералы iso 8859-1? Не поймите меня неправильно, я не говорю о кодировке исходных файлов
+1 к Р.. но поскольку речь идет именно о gcc:
Вам нужно использовать опцию:
-fexec-charset=iso-8859-1
Вы также можете указать кодировку исходного файла, используя -finput-charset
вариант. Наконец, вы можете указать кодировку широких символов, но это действительно крайне не рекомендуется.
Все три из этих опций описаны в Руководство по gcc.
Если вы хотите включить литералы latin1 в исходные файлы, вы должны использовать \x
непосредственно. Возможно, есть и другие способы, но они полагаются на непереносимые опции, чтобы сообщить компилятору кодировку вашего исходного файла, и вы уже сказали, что не хотите менять кодировку вашего исходного файла. Но на самом деле это 2014, а не 1994. Вам следует избегать использования latin1, если это вообще возможно, и хранить все свои данные в кодировке Unicode.