当前位置: 代码迷 >> 综合 >> unicode locale utf mbrtowc wchat.h
  详细解决方案

unicode locale utf mbrtowc wchat.h

热度:80   发布时间:2024-01-06 03:28:26.0

wchar_t  ws[] = L"我a1"  出现了   "converting to execution character set

从这个编译错误引发的一系列查找资料。

devc++ 的文本编辑器使用的编码不是utf8, 所以文本编辑器里的代码 【我】 使用的可能是gbk类的编码,

因此出现了 unicode中不可能出现的字节,从而报错。

总结一下:  

C/C++中有这样两个编码概念:
source character set:源文件的编码
execution character set:执行环境的编码

source character set和你的文件中的character set不一致。编译时使用 finput-charset=GB2312 指定源文件的编码方案即可。

还有一种变态的避免 source charset 和  execution charset的办法: 转义字符。

【我】的unicode 值是  ced2, 因此 ws[] = L"\xce\xd2"; 绝对纯正!

 

 

字符编码涉及的范围:

1、 源文件中字符串的编码, 同样时字符串 【“我”】, 源文件以gbk保存或者以utf8 保存,在磁盘上的字节流肯定是不同的。

  相关解决方案