笔记目录
前言
Rock老师;C++错误;笔记
一、(学)VS 的中文乱码问题
1.中文乱码的原因:
- 中文在不同编码格式下, 存储的方式不一样.
- 如果程序是 A编码方式编译运行的,但是控制台却是以 B 编码方式来显示, 就会出现乱码.
- vs 的控制台默认编码是 GB2312,编号号是936.
注意: GBK 编码是兼容 GB2312 的,一般描述 GBK 常常就是指 BG2312.如果源代码文件的编码如果是其他编码格式, 就会导致中文乱码.
2.中文乱码发生场景:
<1>.正常场景:
在 vs 中新建文件时,该文件默认都是 GB2312 编码. 因为控制台默认也是 GB2312 编码,所以一般情况下,都不会出现中文乱码.
<2>.错误场景:
- 直接在项目中导入了其他已经创建好的源代码文件, 如果该文件不是 BG2312 编码, 而且含有中文的话, 就必定会出现中文乱码.
- 从其他文件中复制代码到 vs 的文件中, 也可能导致编码错乱.
- 网络编程中, 和服务器交互通信, 两端的编码很可能不同.
3.解决方案
<1>.修改文件的编码格式
点击文件->高级保存选项->编码格式:(简体中文(BG2312),代码页936)
<2>.强制指定文件执行
#pragma execution_character_set("gbk")
<3>.修改控制台编码格式
不建议(可能会导致控制台不能输中文)
<4>.对数据进行编码转换
适用于:
服务器端和客户端, 或多个客户端之间的编码不一致时.
1.收到对方的其他编码数据时, 先使用特定的接口来进行编码转换.
2.发送本地数据给对方之前, 先使用特定的接口来进行编码转换
二、(自)代码正确,但无法通过编译
1.原因
代码看不出错误,而且报错信息莫名其妙,则很可能是因为代码使用全角字符方式输入的。
特别是各种符号,比如双引号,圆括号,分号等。
2.解决方案
- 把原来的部分代码删除,切换到半角输入方式,再重新输入。
- 使用搜狗输入法的“中文时使用英文标点”功能,可以避免因为中英文切换导致的全角
符号错误。
总结
23/05/02 - 未完结