установить кодировку строковых литералов на latin1 с помощью gcc

Есть ли способ заставить gcc использовать кодировку latin1 для строковых литералов? Я могу использовать префикс u8 для получения строковых литералов в кодировке utf-8, но как я могу использовать строковые литералы iso 8859-1? Поймите меня правильно, я не про кодировку исходных файлов


person user2798943    schedule 03.08.2014    source источник
comment
Если вам нужна определенная кодировка для строковых литералов, вам определенно нужно установить кодировку исходных файлов, так как строковые литералы находятся в исходных файлах.   -  person Some programmer dude    schedule 03.08.2014


Ответы (2)


Если вы хотите включить литералы latin1 в исходные файлы, вы должны использовать \x напрямую. Вероятно, есть и другие способы, но они основаны на непереносимых опциях для сообщения компилятору кодировки вашего исходного файла, и вы уже сказали, что не хотите менять кодировку вашего исходного файла. Но на самом деле это 2014, а не 1994 год. Вам следует избегать использования latin1, если это вообще возможно, и иметь все ваши данные в кодировке Unicode.

person R.. GitHub STOP HELPING ICE    schedule 03.08.2014

+1 к R.., но поскольку вопрос конкретно о gcc:

Вам нужно использовать опцию:

-fexec-charset=iso-8859-1

Вы также можете указать кодировку исходного файла, используя параметр -finput-charset. Наконец, вы можете указать кодировку широких символов, но это крайне не рекомендуется.

Все три параметра описаны в руководство gcc.

person rici    schedule 03.08.2014