在OSX上用C ++编写特殊字符到控制台

时间:2013-09-20 22:01:04

标签: c++ eclipse macos utf-8 special-characters

我用C ++编写了一个程序来查询与音乐相关的元数据。但是,当将结果写入控制台时,我意识到某些艺术家的名字中有特殊字符,UTF-8具体而言。到目前为止,我已经学会了通过字符代码显示特殊字符,如下所示:

cout << "\u0394" << "\n";

上面的代码应根据http://www.utf8-chartable.de/显示“Δ”,而是显示“Œ”,我相信这与控制台的编码有关。

我对这个问题进行了一些研究,并且遇到了一个示例程序,该程序应该可以解决我的问题,而是我得到了以下我似乎无法解决的错误。

#include <io.h>
#include <fcntl.h>
#include <iostream>

int main()
{
    _setmode (_fileno(stdout), _O_U8TEXT);
    wcout << L"AaĄąfl" << endl;

    return 0;
}

../main.cpp:1:16: warning: io.h: No such file or directory
../main.cpp: In function 'int main()':
../main.cpp:7: error: '_fileno' was not declared in this scope
../main.cpp:7: error: '_O_U8TEXT' was not declared in this scope
../main.cpp:7: error: '_setmode' was not declared in this scope
../main.cpp:8: error: 'wcout' was not declared in this scope
../main.cpp:8: error: 'endl' was not declared in this scope
make: *** [main.o] Error 1

我知道有很多关于此的信息,但我已经做了足够的研究,在我看来,这里需要发布。我认为无法解决此问题的原因之一是因为我读过的关于此主题的信息都不适用于MacOSX。我也在使用Eclipse Kepler。

非常感谢有关如何使我的示例程序正常工作或正确显示到控制台的任何信息。

谢谢

1 个答案:

答案 0 :(得分:0)

感谢@sbugert ......

如何在Eclipse Kepler中更改控制台的编码:
运行&gt;运行配置
导航到您当前的项目
输入“常用”标签
请参阅'编码'部分