您的位置:首页 > 其它

Visual Studio 2010/2013 UTF8编码调试时显示中文

2015-06-09 21:33 399 查看
VisualStudio 2010 SP1环境

1、设置string默认编码为utf8,只需要在文件头部加入以下代码

#pragma execution_character_set("utf-8") //默认使用UTF8


2、debug提示窗口显示utf8,打开C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Packages\Debugger\autoexp.dat文件找到第412到413行,原文如下:

std::basic_string<char,*>{
preview        ( #if (($e._Myres) < ($e._BUF_SIZE)) ( [$e._Bx._Buf,s] ) #else ( [$e._Bx._Ptr,s] ))
stringview    ( #if (($e._Myres) < ($e._BUF_SIZE)) ( [$e._Bx._Buf,sb] ) #else ( [$e._Bx._Ptr,sb] ))


修改为以下内容

std::basic_string<char,*>{
preview        ( #if (($e._Myres) < ($e._BUF_SIZE)) ( [$e._Bx._Buf,s8] ) #else ( [$e._Bx._Ptr,s8] ))
stringview    ( #if (($e._Myres) < ($e._BUF_SIZE)) ( [$e._Bx._Buf,s8b] ) #else ( [$e._Bx._Ptr,s8b] ))


参考:

autoexp.dat入门http://www.thecodeway.com/blog/?p=924

VS2013修改autoexp.dat已经无效,需要修改

C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Packages\Debugger\Visualizers\stl.natvis文件,大约755-758行

<Type Name="std::basic_string<char,*>">
<DisplayString Condition="_Myres < _BUF_SIZE">{_Bx._Buf,s8}</DisplayString>
<DisplayString Condition="_Myres >= _BUF_SIZE">{_Bx._Ptr,s8}</DisplayString>
<StringView Condition="_Myres < _BUF_SIZE">_Bx._Buf,s8</StringView>
<StringView Condition="_Myres >= _BUF_SIZE">_Bx._Ptr,s8</StringView>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: