VS项目工程字符集选择-创新互联

前沿

成都创新互联服务项目包括六安网站建设、六安网站制作、六安网页制作以及六安网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,六安网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到六安省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

1)为了保证跨平台,尽量少用C++标准IO库,尽可能使用兼容性非常好的C标准库
            2)为了引用其他的基础C库,采用ANSI比采用Unicode字符集好一些

控制台中文乱码问题

窄字符串使用std::cout输出,宽字符串使用std::wcout输出。std::cout输出宽字符串的时候,不仅仅中文会产生乱码,并且会导致控制台打印阻塞,尽管程序正常运行,但是打印就此中断正确的打印方式是将宽字符串转换成窄字符串,然后再打印。采用printf输出宽字符串,对于中文输出同样是乱码,但是不会阻塞。

了解string与wstring

字符数组可以表示一个字符串,但它是一个定长的字符串,我们在使用之前必须知道这个数组的长度。为方便字符串的操作,STL为我们定义好了字符串的类string和wstring。大家对string肯定不陌生,但wstring可能就用的少了。string是普通的多字节版本,是基于char的,对char数组进行的一种封装。wstring是Unicode版本,是基于wchar_t的,对wchar_t数组进行的一种封装。

进展

目前接收到utf8编码的字符串,保存在string字符串中,如果不经过utf8转换成GBK编码是无法正常显示的。std::wcout << str.c_str()<

提供控制台编码字符串的命令
chcp 65001  就是换成UTF-8代码页
chcp 936 可以换回默认的GBK
chcp 437 是美国英语

问题

1)错误 C2679 二进制“<<”: 没有找到接受“const std::string”类型的右操作数的运算符(或没有可接受的转换)

严重性 代码 说明 项目 文件 行 禁止显示状态

错误 C2664 “void OutputDebugStringW(LPCWSTR)”: 无法将参数 1 从“char [256]”转换为“LPCWSTR”

说明当前采用的是unicode编码,跟其他工程选择的编码方式不一致

解决:点击项目属性,打开配置属性界面,常规中选择字符集多字节编码

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网站名称:VS项目工程字符集选择-创新互联
文章网址:http://ybzwz.com/article/dcgooo.html