在上一篇博文中,介绍了怎样在 Windows 的控制台界面下输出 BMPString 的内容,可是那里的方法在 Linux 下不适用.假设将那里的演示样例代码放到 Linux 下运行.输出的结果为乱码.产生乱码的原因在于 wchar_t 类型的变量在 Windows 下和 Linux 下的字节长度不同. 下面 C 程序在 Windows 和 Linux 下都可以运行: #include <stdio.h> #include <wchar.h> #if defined(_WIN32)
同样,使用的是VS FOR LINUX进行测试. converting to execution character set: Invalid or incomplete multibyte or wide character 如果编译时候遇到该错误,则可以加上-finput-charset -fexecute-charset g++编译选项解决.因为linux下gcc希望源文件是UTF-8格式,所以都改成UTF-8就好了.同时,也可以vs下装个forceUTF8插件. 搜了下,网上有说使用