異常描述
1)今天不知道是什么原因,我自己的vs2017的開發環境編譯項目時,在輸出窗口都是亂碼,在生成事件
1>------ 已啟動全部重新生成: 項目: TestHook, 配置: Debug Any CPU ------
1> 'setlocal' �����ڲ����ⲿ���Ҳ���ǿ����еij���
1> �����������
1> ϵͳ�Ҳ���ָ����·����
1> TestHook -> E:\_Del\哈哈\TestHook\TestHook\bin\Debug\TestHook.exe
1> 'setlocal' �����ڲ����ⲿ���Ҳ���ǿ����еij���
1> �����������
========== 全部重新生成: 成功 1 個,失敗 0 個,跳過 0 個 ==========
2) 生成后事件中如下代碼:
mkdir "$(SolutionDir)aa開發測試aa\$(ConfigurationName)\Poll"
在上面的項目路徑中有中文,而且創建的文件夾也含中文,所以導致創建的文件夾也含亂碼,也就是出現中文的都是亂碼,路徑如下:
E:\_Del\鍝堝搱\TestHook\aa寮€鍙戞祴璇昦a\Debug
3)打開之前保存的txt文件,其中中文部分也顯示亂碼。
解決方法
1)重置vs配置:devenv /ResetSettings
2)版本升級,從15.9.17-->15.9.45
3)修改系統cmd命令行和powershell,改變格式:chcp 936,或者65001
4)直接在生成事件中使用chcp修改字符集 參考: https://blog.csdn.net/rhddlr/article/details/109771891
以上方法都未解決實際亂碼的問題。
當我知道所有txt文件也都是亂碼的時候,才想起來按這個問題搜索答案,可以參考我的另外一篇文章:記事本亂碼,如何修復記事本中的中文亂碼
就是直接點擊“開始”-->“控制面板”-->“時鍾、語言和區域”-->“區域和語言”-->“管理”-->“非Unicode程序的語言”-->“更改系統區域設置”,如下圖:
我的情況是不知道什么時候,勾選了“Beta版:使用Unicode UTF-8 提供全球語言支持(U)”,然后把前面的勾取掉,重啟系統,txt和編譯之前的項目都沒有問題了。