Я разрабатываю кросс-платформу С++ с помощью Microsoft Visual Studio для Windows и GCC на uBuntu Linux.
В Visual Studio я могу использовать символы юникода, такие как " π" и " ²" в моем коде. Visual Studio всегда сохраняет исходные файлы как UTF-8 с спецификацией (отметка байтового байта).
Например:
// A = π.r²
double π = 3.14;
GCC с радостью компилирует эти файлы только в том случае, если я сначала удаляю спецификацию. Если я не удаляю спецификацию, я получаю такие ошибки:
wwga_hydutils.cpp: 28: 9: error: stray '\ 317 в программе
wwga_hydutils.cpp: 28: 9: ошибка: блуждание '\ 200 в программе
Что подводит меня к вопросу:
Есть ли способ получить GCC для компиляции файлов UTF-8 без предварительного удаления спецификации?
Я использую:
- Windows 7
- Visual Studio 2010
и
- uBuntu Oneiric 11.10
- GCC 4.6.1 (как указано в apt-get install gcc)
Edit:
Как отметил первый комментатор, моя проблема заключалась в не спецификации, но с символами не-ascii вне строковых констант. GCC не любит символы non-ascii в именах символов, но оказывается, что GCC полностью совместим с UTF-8 с спецификацией.