我用 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 开普勒。
任何有关如何让我的示例程序正常工作或正确显示到控制台的信息将不胜感激。
谢谢