Qt sprintf_s函数格式化字符串出错

问题的出现: 我在VS上用c C++写的跨平台的函数 

移植到Qt 上面 出现sprintf_s 函数格式化出错。

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多理想,多美好。

 

上一篇:sprintf函数


下一篇:oi造数据