4

我正在尝试做这样简单的事情:

#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 等等。

4

2 回答 2

3

Visual Studio 支持unicode源文件。确保您的 cpp 文件保存为带有BOM的 utf16 或 utf8 格式的文件。一旦采用这种格式,您的文件将可以正常编译。

于 2011-12-17T19:20:56.260 回答
1

检查这个问题的第一个答案:

std::wstring VS std::string

以及我对此的回答:

在 C++ 中处理 UTF-8

我相信你会找到你的问题的答案。字符编码的问题有点令人困惑,没有简单的答案......

于 2011-12-17T19:25:43.890 回答