Это должно быть проблема конфигурации!
Очевидно, ваш компилятор использует другую кодировку, чем ваш файл записан в!Поскольку вы используете Windows, скорее всего, кодировка файла на вашем компьютере - не UTF-8 (в конце концов вы скопировали этот файл в Linux), а что-то другое.Так как gcc более дружественен к Linux, он может ожидать UTF-8 и у вас возникнет конфликт.
Это распространенная проблема, поскольку Windows долгое время поддерживала некоторую обратную совместимость с DOS (где допускались только однобайтовые символы)и используемые системой кодовые страницы для соответствующих языков).
Как вы можете увидеть здесь , большинство компиляторов с настройками по умолчанию не имеют проблем с кодом, в котором используются китайские символы.
Я не вижу TCM-GCC 4.9.2
компилятор на godbolt, нов конце концов, это не очень старый gcc.
Я рекомендую убедиться, что код написан на UTF-8, а компилятор будет обрабатывать источники как кодированные в UTF-8.
Редактировать : Добавление std::locale::global(std::locale(""));
сделало ваш код правильно отображающим эту строку на кресте.