Я разрабатываю кроссплатформенность на C ++ с использованием Microsoft Visual Studio для Windows и GCC на uBuntu Linux.
В Visual Studio я могу использовать символы Unicode, такие как " π " и " ² "в моем коде.Visual Studio всегда сохраняет исходные файлы как UTF-8 с BOM (Byte Order Mark).
Например:
// A = π.r²
double π = 3.14;
GCC успешно компилирует эти файлы, только если я сначала удаляю BOM.Если я не удаляю спецификацию, я получаю следующие ошибки:
wwga_hydutils.cpp: 28: 9: ошибка: отклонение '\ 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 )
Редактировать:
Как указал первый комментатор, моя проблема заключалась в не спецификации, но с использованием символов, отличных от ascii, вне строковых констант.GCC не нравится не-ascii символы в именах символов, но оказывается, что GCC полностью совместим с UTF-8 с спецификацией.