vscode輸出中文亂碼解決方案


-----------------2021.4.23更新----------------------------------

          原來更改電腦字符集的方法是可以的,但是會讓一些古老的軟件直接顯示亂碼,因為以前的很多軟件都沒適配 utf-8 ,所以今天更新下新的方式,還是回來改vscode 吧,之前就是找了半天沒找到,才直接改電腦,轉來轉去又回來了,我吐了

          ps:code-runner運行是沒問題的,如果用 F5 調試還是亂碼哈,畢竟只是改了 code-runner的相關設置,你不能期望他直接改了 cmd 的東西。

步驟

  1. 文件-------首選項-----------設置-----------用戶------功能-------終端-------在 settings.json 中編輯

在這里插入圖片描述

  1. 注釋掉所有的 "code-runner.runInTerminal": true, ,完成
    在這里插入圖片描述

-----------------2021.4.23更新----------------------------------

背景

          win10系統,編譯器是MinGW

原因

          出現亂碼的原因一般都是編碼問題,在vscode里面調用的是系統的終端,終端一般都是gbk的(runcoder、powershell、cmd),vscode一般默認utf-8;編碼解碼不匹配就亂碼了唄,

解決辦法

          win10可以把電腦所有東西都設置成utf-8的

  1. 左下角設置------時間與語言
    在這里插入圖片描述
    在這里插入圖片描述
  2. 區域-------拉到下面找到,其他日期、時間和區域設置----------然后點擊 區域 更改日期、時間和數字格式
    在這里插入圖片描述
    在這里插入圖片描述
  3. 進去后,管理-----------更改系統區域設置------------勾選beta版:使用Unicode UTF-8 提供全球語言支持(U)

在這里插入圖片描述

在這里插入圖片描述

  1. 重啟電腦,搞定收工

當時測試的代碼

#include<iostream>
#include<algorithm>
#include<string>
#include<vector>

using namespace std;

int binarySearch(vector<int>& nums, int target) {
    if(nums[0]>target || nums[nums.size()-1]<target){
        return - 1;
    }
    int left = 0, right = nums.size(),mid=0;
    while(left<=right){
        mid = left + (right - left) / 2;
        if(nums[mid]==target){
            return mid;
        }else if(nums[mid]>target){
            right = mid - 1;
        }
        else if(nums[mid]<target){
            left = mid + 1;
        }
    }
    return -1;   //當循環條件有=時
}


int main(){
    vector<int> nums = { -140,-110,-10, 0, 3, 5, 15, 19,90,110, 122, 172,212};
    //二分查找
    int index = 0,target=19;
    index = binarySearch(nums, target);
    if(index!=-1){
        cout << target << "在數組中的下標是:"<< index << endl;
    }


    // getchar();
    return 0;
}

在這里插入圖片描述


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM