【发布时间】:2012-09-11 18:53:01
【问题描述】:
我是c++新手,想写一段很简单的代码,结果出错了,不知道怎么解决。
代码是:
#include <iostream>
#include <string>
using namespace std;
int main() {
string test_string = "aáeéöôőüűč♥♦♣♠";
cout << test_string << endl;
return 0;
}
但结果是:a├íe├ę├Â├┤┼Ĺ├╝┼▒─ŹÔÖąÔÖŽÔÖúÔÖá
我在 Windows 上,使用 Code::Blocks。
【问题讨论】:
-
结果并不像“意外”那样“错误”。您需要拓宽对环境的期望和理解。
-
为我工作。您使用什么操作系统?编译器?源文件编码?
-
祝你好运尝试在 Windows 控制台中显示 utf-8,请参阅:stackoverflow.com/questions/379240/… 您必须在运行程序之前更改代码页。
-
我一直在做的——这可能是也可能不是你正在寻找的答案——是在一个工具中将字符串编码为 UTF-8 并将其作为转义码放入,字节为字节,如
test_string = "a\xc3\xa1""e\xc3\xa9\xc3\xb6\xc3\xb4\xc5\x91\xc3\xbc\xc5\xb1\xc4\x8d\xe2\x99\xa5\xe2\x99\xa6\xe2\x99\xa3\xe2\x99\xa0"。这样,无论源代码文件的编码或任何语言环境设置如何,我都可以确定字符串是正确的 UTF-8。 -
您是否仅限于标准 C++,还是愿意使用 Windows API?