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