前沿
我們提供的服務(wù)有:做網(wǎng)站、成都網(wǎng)站建設(shè)、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、西青ssl等。為上千多家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢(xún)和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的西青網(wǎng)站制作公司
????????????1)為了保證跨平臺(tái),盡量少用C++標(biāo)準(zhǔn)IO庫(kù),盡可能使用兼容性非常好的C標(biāo)準(zhǔn)庫(kù)
???????? ?? 2)為了引用其他的基礎(chǔ)C庫(kù),采用ANSI比采用Unicode字符集好一些
控制臺(tái)中文亂碼問(wèn)題
????????????????窄字符串使用std::cout輸出,寬字符串使用std::wcout輸出。std::cout輸出寬字符串的時(shí)候,不僅僅中文會(huì)產(chǎn)生亂碼,并且會(huì)導(dǎo)致控制臺(tái)打印阻塞,盡管程序正常運(yùn)行,但是打印就此中斷正確的打印方式是將寬字符串轉(zhuǎn)換成窄字符串,然后再打印。采用printf輸出寬字符串,對(duì)于中文輸出同樣是亂碼,但是不會(huì)阻塞。
了解string與wstring
????????????????字符數(shù)組可以表示一個(gè)字符串,但它是一個(gè)定長(zhǎng)的字符串,我們?cè)谑褂弥氨仨氈肋@個(gè)數(shù)組的長(zhǎng)度。為方便字符串的操作,STL為我們定義好了字符串的類(lèi)string和wstring。大家對(duì)string肯定不陌生,但wstring可能就用的少了。string是普通的多字節(jié)版本,是基于char的,對(duì)char數(shù)組進(jìn)行的一種封裝。wstring是Unicode版本,是基于wchar_t的,對(duì)wchar_t數(shù)組進(jìn)行的一種封裝。
進(jìn)展
????????????目前接收到utf8編碼的字符串,保存在string字符串中,如果不經(jīng)過(guò)utf8轉(zhuǎn)換成GBK編碼是無(wú)法正常顯示的。std::wcout << str.c_str()<<endl;這種方法是錯(cuò)誤的,即使設(shè)置了控制臺(tái)的編碼字符集chcp 65001
提供控制臺(tái)編碼字符串的命令
chcp 65001? 就是換成UTF-8代碼頁(yè)
chcp 936 可以換回默認(rèn)的GBK
chcp 437 是美國(guó)英語(yǔ)
問(wèn)題
1)錯(cuò)誤 C2679 二進(jìn)制“<<”: 沒(méi)有找到接受“const std::string”類(lèi)型的右操作數(shù)的運(yùn)算符(或沒(méi)有可接受的轉(zhuǎn)換)
嚴(yán)重性 代碼 說(shuō)明 項(xiàng)目 文件 行 禁止顯示狀態(tài)
錯(cuò)誤 C2664 “void OutputDebugStringW(LPCWSTR)”: 無(wú)法將參數(shù) 1 從“char [256]”轉(zhuǎn)換為“LPCWSTR”
說(shuō)明當(dāng)前采用的是unicode編碼,跟其他工程選擇的編碼方式不一致
解決:點(diǎn)擊項(xiàng)目屬性,打開(kāi)配置屬性界面,常規(guī)中選擇字符集多字節(jié)編碼
當(dāng)前題目:VS項(xiàng)目工程字符集選擇
文章URL:http://www.chinadenli.net/article44/pgejee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、ChatGPT、云服務(wù)器、小程序開(kāi)發(fā)、自適應(yīng)網(wǎng)站、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)