首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

在GCC中如何定义 wchar_t* 字符串数组? 小弟我这如何出错? 如何改

2013-12-13 
在GCC中怎么定义 wchar_t* 字符串数组? 我这怎么出错? 怎么改?const static wchar_t* Name_CN[] {NULL,L

在GCC中怎么定义 wchar_t* 字符串数组? 我这怎么出错? 怎么改?
const static wchar_t* Name_CN[] = {
NULL,
L"名",
L"姓",
L"职务",
L"年龄",
L"性别",
NULL
};

error: converting to execution character set: Illegal byte sequence

[解决办法]
是否和你的源文件的编码有关呢?把源文件另存成utf-8之类的试试吧。
[解决办法]
编码格式看一下
[解决办法]
推荐使用WinHex软件查看硬盘或文件或内存中的原始字节内容。

对电脑而言没有乱码,只有二进制字节;对人脑才有乱码。啊 GBK:0xB0 0xA1,Unicode-16 LE:0x4A 0x55,Unicode-16 BE:0x55 0x4A,UTF-8:0xE5 0x95 0x8A

[解决办法]
指定输入文件的的字符编码,如果不指定,将无法将L“中文"这样的字符正确转化为宽字符。
详解看看
[解决办法]
需要#include <wchar.h>

引用:
const static wchar_t* Name_CN[] = {
NULL,
L"名",
L"姓",
L"职务",
L"年龄",
L"性别",
NULL
};

error: converting to execution character set: Illegal byte sequence

[解决办法]

NULL,改为 L"" 试试?

[解决办法]
C++有physical character set/source character set/execution character set这么一说,编译器得认识源文件的字符集,才能处理L""里面的东西。

热点排行