【发布时间】:2012-01-20 17:52:58
【问题描述】:
为了确定 C++ 是否适合我的项目,我想测试 UTF-8 功能。根据参考资料,我建立了这个例子:
#include <string>
#include <iostream>
using namespace std;
int main() {
wstring str;
while(getline(wcin, str)) {
wcout << str << endl;
if(str.empty()) break;
}
return 0;
}
但是当我输入一个 UTF-8 字符时,它会出现异常:
$ > ./utf8
Hello
Hello
für
f
$ >
它不仅不打印ü,而且会立即退出。 gdb 告诉我没有崩溃,而是正常退出,但我觉得很难相信。
【问题讨论】:
-
您的目标是哪个平台(Windows、Linux 等)?
-
Linux,实际上。如果它也可以在 Windows 上运行,那也是一种奖励。
-
您的语言环境是否设置为 UTF-8 编码?
-
不一定遵循。无论如何,它适用于普通的
string、cin、cout,而不适用于这里的w...版本,我怀疑他们想要 UTF-32(或 16?)。
标签: c++ linux stl utf-8 wstring