【发布时间】:2012-01-22 18:02:58
【问题描述】:
我正在尝试做一些像这样简单的事情:
#include <iostream>
#include <string>
using namespace std;
int main()
{
wstring nihongo = L"みんなのにほんご";
wcout << nihongo << endl;
return 0;
}
但我收到以下错误:
C:\Users\Leonne\Leomedia\MetaDatterTest.cpp|7|error: stray '\201' in program|
C:\Users\Leonne\Leomedia\MetaDatterTest.cpp|7|error: stray '@' in program|
C:\Users\Leonne\Leomedia\MetaDatterTest.cpp||In function 'int main()':|
C:\Users\Leonne\Leomedia\MetaDatterTest.cpp|7|error: converting to execution character set: Illegal byte sequence|
||=== Build finished: 3 errors, 0 warnings ===|
我在一台 Windows 机器上,我正在尝试创建一个尽可能便携的库,它必须能够处理任何类型的字符:俄语、日语、ASCII 等等。
【问题讨论】:
-
编译器也必须将源文件读取为unicode,不过我不知道这是不是问题。
-
您的语句中的 L 之前有一个不可见的字形,字符代码为“\x3000”。复制/粘贴此修复:
wstring nihongo = L"みんあのにほんご"; -
@Hans:这是一个答案。
-
从您的评论看来您应该阅读joelonsoftware.com/articles/Unicode.html
-
嗯,让他的编译器理解文字并让它在西方机器上的控制台或终端窗口中正确呈现需要另外几个答案。我们不知道编译器和操作系统。