[英]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.