vs2010 调试窗口debugger UTF8 显示汉字 乱码
生活随笔
收集整理的這篇文章主要介紹了
vs2010 调试窗口debugger UTF8 显示汉字 乱码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
謹記: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!別瞎搞!)
如上圖,項目是用utf-8編碼格式,但是調試窗口,中文顯示亂碼;
原因:調試窗口還假定文本是在本地窄字符集中編碼的,換句話說?調試窗口編碼是GB2312
解決辦法:
幸運的是,有's8'?格式說明符,這種方法可以顯示正確的值。如果我們將',s8'附加到變量名稱,Visual Studio將以UTF-8重新分析文本并正確呈現文本:(雙擊,Name下面的字段,加上,s8?)
要說明的是's8'格式說明符適用于普通字符數組,但不適用于std :: string變量。我去年向微軟報告了這一點,但他們顯然已將其修改為未來版本的Visual Studio。
那string怎么處理呢?我采用了曲線繞過的辦法,如下圖(先c_str()再,s8)
總結
以上是生活随笔為你收集整理的vs2010 调试窗口debugger UTF8 显示汉字 乱码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: source insight 4.0 括
- 下一篇: 网速、宽带速率运营商说法与用户说法转换