[关闭]
@zwh8800 2017-08-23T02:23:59.000000Z 字数 426 阅读 190819

c/c++字符编码

blog 归档 c/c++ 字符编码


c/c++定义了窄字符和宽字符,但窄字符串和宽字符串的具体编码确取决于实现。本文对其进行一下剖析。


c/c++定义了窄字符和宽字符,但窄字符串和宽字符串的具体编码确取决于实现。

在Visual studio中,窄字符串(char*,””)的编码和文件的编码一致,说白了就是把文件中被引号括起来的部分原封不动的变成字符串。而宽字符串(wchar_t*,L””)则是一律编码为UTF-16。

在GCC中,更灵活一些,可以通过选项指定“文件编码”,“字符编码”,“宽字符编码”。

  1. -finput-charset:指定输入文件的编码格式。
  2. -exec-charset:指定窄字符串的编码格式。
  3. -exec-wide-charset:指定宽字符串的编码格式。

例如:

-finput-charset=GBK -exec-charset=utf-8

表示输入文件为GBK,字符串为utf-8格式,会将文件中的汉字自动转化为utf-8格式。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注