繁体   English   中英

使用MinGW的C ++ Unicode程序中的错误

[英]error in c++ unicode program using MinGW

#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;

int main()
{
    wstring str = L"こんにちは";
    wcout<<str<<endl;
    system("pause");
}

我正在尝试从C ++程序打印日语(hello),但出现错误。 我已经使用UNICODE编码将该程序保存在记事本中,然后使用MinGW 4.7.2编译,并出现以下错误:

E:\GCC test>g++ -c unicode.cpp
unicode.cpp:1:1: error: stray '\377' in program
unicode.cpp:1:1: error: stray '\376' in program
unicode.cpp:1:1: error: stray '#' in program
unicode.cpp:3:4: error: invalid preprocessing directive #i
unicode.cpp:5:4: error: invalid preprocessing directive #i
unicode.cpp:1:5: error: 'i' does not name a type
unicode.cpp:11:2: error: 'i' does not name a type

到了错误,它看起来像你有在UTF-16LE有一个文件BOM (B YTE 刻申中号柜),以及编译器不喜欢这样。

\\377\\376 = 0xfffe =一个UTF-16LE BOM

尝试删除BOM表,和/或尝试使用其他编码。 UTF-8是一种出色的编码,不需要BOM,大多数编译器和许多其他工具都可以理解。


至于Unicode ,它不是二进制字符编码。 但是,有一些编码“绑定”到Unicode。 UTF-8和UTF-16可能是最常见的此类编码。

如果编辑器提供以“ Unicode编码”保存文件,请尝试远离该编辑器。 如果该编辑器是记事本,那么还有更多理由不要使用它。 为自己准备一个合适的编程编辑器,他能理解编码和EOL,并具有语法突出显示等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM