问题的出现: 我在VS上用c C++写的跨平台的函数
移植到Qt 上面 出现sprintf_s 函数格式化出错。
开始以为是编码问题 反复查找Qt乱码问题 。我的编译文件编码utf8 编译器minGW 32 默认编码应该也是utf8 照常说没错。
查了很多关于文件编码 执行编码的问题
https://www.cnblogs.com/liunian1004/p/5912536.html文章 很好的介绍了QSting 编码处理问题。
解决:
经常多方尝试和询问 后面发现 sprintf函数格式化没问题,我靠,怎么会这样。
后面查找了下 发现sprintf_s 是windows平台的函数。
qt中查看sprintf_s 头文件(f2查看),
此刻大概理解可能是因为sprintf_s 调用了系统的dll 把格式化字符串用本地字符集处理。
本地gdb 执行编码是utf8 所以格式化错误。
编码就是地雷 是坑。所有系统统一用utf8多理想,多美好。