1. 程式人生 > >win10更新1809版本後執行Dev-cpp, dos控制檯字元亂碼解決方法

win10更新1809版本後執行Dev-cpp, dos控制檯字元亂碼解決方法

 

微軟:請勿安裝windows10 1809版本,有bug會刪除個人檔案

雖然微軟非常利索的在釋出會後及時推送了新的windows10新版本,但自從推送後,諸多問題層出不窮。之前使用者曾表示1809版本windows 10的工作管理員存在CPU使用率錯誤顯示的問題。

不過,可能是微軟釋出的太過於匆忙,1809版本已被發現非常嚴重的bug。有使用者反饋稱由於1809的推送,自己電腦的user個人資料夾丟失了近十年積攢下的檔案,這個問題也不是孤例,已經不止一個使用者反饋了這一嚴重的bug。

微軟已在此前暫停並撤去了1809的推送和更新,並已撤下官網的新版宣傳頁面,並在顯著位置對此事做了說明。說明中敘述了該問題,並表示,如果使用者確定在更新系統後丟失了個人檔案,請儘量減少使用受到影響的裝置,並於當地的微軟服務中心取得聯絡。

微軟還表示,會為使用者提供專門的修復工具,並不建議使用者使用其他的第三方工具恢復,以免對原硬碟的結構造成破壞。

正如眾多網友表示,1809可以說是bug最多的版本了,這背後也是微軟業務中心的表現。

18年4月,微軟進行了納德拉上任CEO以來最大的一次業務重組,這次重組解散了原來的Windows和硬體裝置部門(WDG),併成立了兩個新的部門——“體驗和裝置部門”和“雲端計算和人工智慧平臺部門”。微軟業務重心變為“雲端計算”和“人工智慧”。

不過上面 並不是我今天要講的

 

今天講Dos控制檯亂碼解決方法。

(一)Dos命令視窗亂碼問題

測試工具:

Dev-cpp 5.11

TDM - GCC  4.9.2  64-bit

             

測試程式碼如下(一): 


#include<iostream>
using namespace std;
#include<stdio.h>
//#pragma execution_character_set("GBK") 
int main(){
	fprintf(stdout, "This is a test.\n");  //顯示正常 
	fprintf(stdout, "你好!123abc\n"); //顯示 [??????123abc] 對後面的字元輸出沒有影響 

	printf("你好!123abc\n"); //顯示 [??????123abc] 
	printf(" 你好!123abc\n"); //顯示   [ ??????123abc]
/*	cout<<"你好!123abc"<<endl; /* 	顯示  [?愫茫?23abc]  
		注:會使後面的cout語句無效 cout1,cout2,cout3。對system("type 檔案路徑")和開啟txt裡的內容無影響 */ 
	cout<<"n你好!123abc"<<endl;// cout1 	cout的內容,英文字母開頭加中文,顯示正常 
	cout<<" 你好!123abc"<<endl;// cout2	cout的內容,空格開頭加中文,顯示正常
	cout<<endl;// cout3
	system("type C:\\Users\\Bingooo\\Desktop\\你好12345.txt");
	return 0; 
} 

 測試結果(二):

                    

分析:

     1、cout後跟的內容,如果直接以中文開頭,會亂碼,如果用“字元+文字” ,顯示正常,字元可以是空格。

     (比較敷衍地解決辦法之一,並不能達到目的!)

     2、首先找問題原因:

             在visual studio測試相同程式碼,全部顯示正常。

             在虛擬機器裡新安裝的一個win10 1809的系統,測試結果,同上。亂碼!

             在虛擬機器裡的win 10, 1803版本,正常!!!!找到問題了! !!win10 1809的 BUG !

     3、找到了問題不行啊,還要找到解決辦法啊!

     4、網上嘗試很多解決辦法,都沒有解決。

(二)下面附上兩個比較有效的辦法:

    方法一:重灌系統!1803的最新官方正版,不做敖述。簡單粗暴,十分有效!推薦在1809穩定之後,再升級系統。

               如果有檔案想保留,並且開啟C盤能看到Windows.old資料夾,可以直接回退。

               但是話說回來,遇到問題就重灌系統,豈不感覺水平太low!

    方法二:更改控制檯屬性。如下圖:

在視窗欄上右鍵 - 屬性 - 勾選 使用舊版控制檯 - 重啟。解決!

(不過舊版控制檯是醜了點,沒辦法~)

        雖然Windows 10四月更新版釋出後已經出現嚴重問題,但相比剛剛釋出的新版本那四月更新版算是小兒科。因為微軟在新版本里直接跳過釋出預覽通道,該通道原本是被設計用於測試生產環境的構建提高版本穩定性。如果你關注Windows 10資訊會發現這次微軟沒有推送釋出預覽版,從慢速通道測試完畢後直接釋出正式版。或許說測試完畢都不算是準確的,因為慢速通道的Build 17763.1 還存在已知問題但依然被作為RTM正式版。和四月更新版那樣只要使用者點選檢查更新那就會自動下載新版本,即便還存在問題的情況下都會下載和升級。

所以不論什麼更新,請謹慎!