您好,登錄后才能下訂單哦!
1)控制臺中文亂碼 解決方案
問題根源
中文顯示亂碼的原因是控制臺設置的編碼格式,如果控制臺設置的編碼格式是GBK,數據庫的存儲內容是UTF-8,當然無法正常顯示
解決方案
1)啟動CMD,查看當前的字符集編碼,使用指令chcp
Active code page:65001 :UTF-8編碼
活動代碼頁:936 :GBK編碼
注意:很多用戶希望能夠在控制臺下輸入中文,必須使用指令chcp 936,切換到GBK編碼格式,才能夠正常輸入
2)目前查看UTF-8編碼的數據庫文件,使用指令chcp 65001,切換到UTF-8編碼字符集
3)進入到sqlite.exe程序的目錄,啟動sqlite.exe,這個時候正常顯示UTF-8數據庫內容
4)如果數據庫內容是GBK編碼,可以使用chcp 936。
2)VS調試:字符串中的字符無效
場景
網絡發送過來的報文是utf-8編碼的Json數據,其中保存有中文。使用Jsoncpp解析的時候單步調試獲取到的變量,在獲取包含中文變量的時候,查看std::string字符串變量,提示;字符串中的字符無效
解析
VS高版本新加的功能,如果字符串中包含有非打印字符,或者utf8編碼,調試器自動顯示:字符串中的字符無效。在這里被誤導過,以為Jsoncpp無法正確解析utf-8編碼的格式,其實Jsoncpp已經解析出內容,只是無法在這種情況下顯示中文,必須是GBK編碼才行
歷程
std::string strName = root["name"].asString(); //name里面的中文字符:風雨在途
這個時候定位到strName,提示字符串中的字符無效
解決
將strName添加監視,在名稱strName之后,添加,s8,就可以正常顯示了
例子
名稱 值
strName,s8 風雨在途
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。