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

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

2

Решение

+1 к Р.. но поскольку речь идет именно о gcc:

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

-fexec-charset=iso-8859-1

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

Все три из этих опций описаны в Руководство по gcc.

4

Другие решения

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

3

По вопросам рекламы [email protected]