在 Windows 系统里写源代码带来的一堆 B 乱码问题解析

如果你刚好学习过 C/C++ 编程,又刚好用了 Windows 系统的电脑,又刚好使用了 Visual Studio 进行代码的编写,又刚好在里面写了中文字符串或者引用了中文文件路径,又刚好有在 windows 的命令行里输出过中文字符串内容,那么你很有可能遇到过乱码问题。

曾经,作为一个技术不深的大学生,没有能力也没有想法去探讨这些问题的根本原因,如今我工作了,虽然技术还是不深,但是依然有工作逼着我去探讨这些问题的根本原因,不然测试就要给我挂一个大大的 bug 单了,没办法,只能够进行探索了。

这次遇到的问题是:同样是 utf-8 编码的源代码文件,在 Visual Studio 里面,字符串字面量在内存里是 GBK 编码,而在 CLion 里是 utf-8 编码。而且 CLion 中的 utf-8 编码还可能有损失。

继续阅读“在 Windows 系统里写源代码带来的一堆 B 乱码问题解析”

使用宽字符解决 Windows 路径乱码问题 —— 没那么深入理解 Windows 下C++ 字符串编码

对我而言,开发最容易踩到坑踩到屎的就是 iOS 开发,其次是 Windows 开发。

归其原因,一般我接触到的 C++ 开发都是以类 unix 系统作为开发的(MacOS、Android、Linux),所以作为不同源且自成门派的 Windows 系统开发对我来说,开发的时候就能感受到很多割裂感,比如 Windows 特有的各种 winAPI,以及不同于类 unix 系统的各种习惯。(例如回车是 LRLF,Visual Studio 文件编码之类的)。

这次可是吃了一坨大的,也多亏于此我对于文件的编码有了更深的认识。

接下来就讲一下我的探索之旅。

继续阅读“使用宽字符解决 Windows 路径乱码问题 —— 没那么深入理解 Windows 下C++ 字符串编码”