在 OSX 上以C++的方式写入要控制台的特殊字符
Writting special characters to console in C++ on OSX
我用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。
有关如何使我的示例程序正常工作或正确显示在控制台的任何信息将不胜感激。
谢谢
感谢@sbugert...
如何在 Eclipse Kepler 中更改控制台的编码:
运行>运行配置
导航到当前项目
进入"通用"选项卡
请参阅"编码"部分
相关文章:
- 如何用转义符替换字符串中的所有特殊字符
- 转换特殊字符(UTF-8)
- 反转字符串中单词的位置,而不更改 O(1) 空格限制中特殊字符的顺序
- 如何在C++中打印此"█"特殊字符?
- c++为什么ifstream get()函数返回无法识别的特殊字符
- 如何检查字符串是否包含所有这些:数字、字母和特殊字符
- 转义std::字符串中的特殊字符
- SDL2加载具有特殊字符的文件
- 将 std::string 转换为具有特殊字符的 FString (TCHAR / wstring)
- 如何从文本文件C++读取整数和特殊字符
- USB序列号显示特殊字符
- 键入特殊字符并保存在文件中
- 回文,不包括特殊字符和空格
- 无法使用 Unicode 特殊字符设置窗口文本
- 使用 libmysql 插入特殊字符
- 使用具有特殊字符的正则表达式标记 C++ 字符串
- 如何输入以特殊字符开头的字符串
- 如何使用正则表达式匹配不包含特殊字符(&、\、<、>、|、)的字符串,除非它们以反斜杠开头
- 带有特殊字符的字符串的控制台输出
- 在 OSX 上以C++的方式写入要控制台的特殊字符