фигурные кавычки g ++ неправильно отображаются в консоли и списке «Проблемы» - PullRequest
7 голосов
/ 15 марта 2010

Недавно я перешел с Visual Studio на Eclipse CDT. Я настроил его так, чтобы компилятор G ++ из моей установки Cygwin мог найти и скомпилировать мой код без лишних слов.

Однако есть небольшая претензия. Каждый раз, когда G ++ сообщает о предупреждении или ошибке, фигурные одинарные кавычки и отображаются как ‘ соответственно ’. Это похоже на проблему кодировки символов; G ++ или Cygwin выплевывают кодировку символов, которая не нравится ни CDT, ни Eclipse.

Это только релевантный результат Google, который я смог найти , но установка переменной среды C ++ LANG в настройках Eclipse на C.UTF-8 или en_US.UTF-8 не имеет никакого эффекта.

Запуск C ++ из Cygwin напрямую показывает фигурные одинарные кавычки. Есть ли способ вообще отключить их? Есть ли переменная окружения, которую я могу установить, или аргумент, который я могу передать?

В изображениях

Затмение показывает иероглифы в разных местах:

Eclipse's problem screen Eclipse's console screen

Cygwin показывает правильные символы (игнорируйте фатальную ошибку):

Cywgin reveals the symbol

Ответы [ 4 ]

5 голосов
/ 15 марта 2010

Да, вы должны либо заставить Eclipse отображать UTF-8, либо запретить Cygwin gcc использовать его. Я не знаю, как сделать первое, но вы можете сделать второе, убедившись, что gcc запускается с чем-то вроде LANG = en_US.ISO-8859-1.

3 голосов
/ 13 мая 2011

Согласно примечаниям к выпуску gcc 4.0 http://gcc.gnu.org/gcc-4.0/changes.html:

В диагностических сообщениях на английском языке теперь будут использоваться кавычки Unicode в языковых стандартах UTF-8. (Неанглийские сообщения уже использовали кавычки, соответствующие языку в предыдущих выпусках.) Если ваш терминал не поддерживает UTF-8, но вы используете языковой стандарт UTF-8 (такие языковые стандарты используются по умолчанию во многих системах GNU / Linux), Вы должны установить LC_CTYPE=C в среде, чтобы отключить эту локаль. Программы, которые анализируют диагностику и ожидают простых сообщений ASCII на английском языке, должны установить LC_ALL=C. См. объяснение Маркуса Куна кавычек Unicode для получения дополнительной информации.

2 голосов
/ 09 сентября 2010

У меня это тоже сработало. Переменная среды должна быть установлена ​​в окне настроек Eclipse в C / C ++ / Build / Environment. Вам нужно добавить новую переменную, нажав на кнопку Добавить. Имя переменной должно быть установлено на LANG, а значение - en_US.ISO-8859-1. Кто-нибудь знает в чем причина проблемы? Cygwin, Eclipse, gcc ???

0 голосов
/ 01 ноября 2012

Ответ 2 работал лучше всего при использовании gcc в терминале cygwin rxvt.

В моем .bash_profile добавлено:

# Отключить кавычки Юникода для gcc

экспорт LC_CTYPE = C

...