无论文件是ANSI编码还是UTF-8有BOM格式编码(注意windows下不要使用utf-8无BOM格式编码,这种编码情况下的字符串常量转换有问题),字符串常量在内存中的编码都为ANSI编码,对应到windows平台就是GBK编码。
如果需要指定C++中的字符串常量编码格式为utf-8编码,可以使用C++11的u8特性,如:char tmp[128] = u8"中国",这样定义的情况下,内存中tmp是中文对应的utf-8编码,注意C++11特性在VS2015以后才支持。
无论文件是ANSI编码还是UTF-8有BOM格式编码(注意windows下不要使用utf-8无BOM格式编码,这种编码情况下的字符串常量转换有问题),字符串常量在内存中的编码都为ANSI编码,对应到windows平台就是GBK编码。
如果需要指定C++中的字符串常量编码格式为utf-8编码,可以使用C++11的u8特性,如:char tmp[128] = u8"中国",这样定义的情况下,内存中tmp是中文对应的utf-8编码,注意C++11特性在VS2015以后才支持。