Recently, I switched from Visual Studio to Eclipse CDT. I've set it up beautifully such that the G++ compiler from my Cygwin installation can locate and compile my code without ado.
There is a minor grievance, however. Each time G++ reports a warning or error, the curly single quotes ‘
and ’
appear as ‘
respectively ’
. It seems like a character encoding problem; G++ or Cygwin is spitting out a character encoding that either CDT or Eclipse doesn't like.
This is only relevant Google result I could find, but setting the C++ environment variable LANG
in Eclipse's preferences to C.UTF-8
or en_US.UTF-8
has no effect.
Running C++ from Cygwin directly reveals the curly single quotes. Is there any way of disabling these altogether? Is there some environment variable I can set or an argument I can pass?
In images
Eclipse shows hieroglyphs in various places:
Cygwin shows the correct symbols (ignore the fatal error):
Answer 2 worked best for me when using gcc in a cygwin rxvt terminal.
Within my .bash_profile added:
# Disable unicode quotation marks for gcc
export LC_CTYPE=C
According to gcc 4.0 release notes http://gcc.gnu.org/gcc-4.0/changes.html:
It worked for me too. The environment variable need to be set in the Eclipse preferences window under C/C++/Build/Environment. You need to add a new variable by clicking on the Add button. The variable name should be set to LANG and the value to en_US.ISO-8859-1. Does anyone know what is the cause of the problem? Cygwin, Eclipse, gcc???
Yep, you either have to get Eclipse to display UTF-8, or to stop Cygwin gcc from using it. I don't know how to do the former, but you can do the latter by making sure that gcc is run with something like LANG=en_US.ISO-8859-1.