vs2010 调试窗口debugger UTF8 显示汉字 乱码

导读:本篇文章讲解 vs2010 调试窗口debugger UTF8 显示汉字 乱码,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

谨记:vs默认debug调试显示变量是 GB2312编码,而开发中c、cpp文档编码格式通常需要UTF-8,在此文档下汉字字符串已经是UTF8,调试窗口是用GB2312显示乱码(本身并未乱码)所以需要借助S8说明符号。

UTF-8 支持中文字符,且跨平台。

vs默认先识别BOM(找不到就按GBK格式编译,这就坑了UTF-8),再选择编码格式是不是UTF-8,推荐vs编译编码格式 UTF-8 BOM。(博客其他篇幅中详述,vs怎么用UTF-8:原理是:加一句话告诉编译器别瞎整,全文就是UTF-8!别瞎搞!)

vs2010 调试窗口debugger UTF8 显示汉字 乱码

如上图,项目是用utf-8编码格式,但是调试窗口,中文显示乱码;

原因:调试窗口还假定文本是在本地窄字符集中编码的,换句话说 调试窗口编码是GB2312

解决办法:

幸运的是,有’s8′ 格式说明符,这种方法可以显示正确的值。如果我们将’,s8’附加到变量名称,Visual Studio将以UTF-8重新分析文本并正确呈现文本:(双击,Name下面的字段,加上,s8 )

vs2010 调试窗口debugger UTF8 显示汉字 乱码

要说明的是vs2010 调试窗口debugger UTF8 显示汉字 乱码‘s8’格式说明符适用于普通字符数组,但不适用于std :: string变量。我去年向微软报告了这一点,但他们显然已将其修改为未来版本的Visual Studio。

那string怎么处理呢?我采用了曲线绕过的办法,如下图(先c_str()再,s8)

vs2010 调试窗口debugger UTF8 显示汉字 乱码

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/96576.html

(1)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!