如何修复Windows上的Visual Studio代码扭曲字符?



在Windows 11中使用Visual Studio Code中的Rust时,我遇到了瑞典国家字符的问题。它可以用下面的程序显示:

fn main() {
let abc = " ååå
ööö
äää";
println!("<---{}--->", abc);
}

使用cargo run从命令行运行程序时,输出如下:

<--- ååå
ööö
äää--->

奇怪的是,在第2行和第3行开始添加了空格。但是,当程序在Visual Studio Code中运行时,瑞典字符会被扭曲。

<--- ååå
├╢├╢├╢
äää--->

我怎么解决它?我从事文本处理工作,这是一个主要问题。

编辑:由于问题没有出现在许多系统上,我添加了技术数据:Windows 11 Pro Version 10.0.22621 Build 22621;Visual Studio Code版本:1.73.1 (user setup)日期:2022-11-09 Chromium: 102.0.5005.167 Node.js: 16.14.2沙盒:No.

-这个答案是Windows特有的。-

信息:这个答案描述了你如何改变你的VSCode设置来在你的控制台中强制使用UTF-8。这个答案的另一种选择是在系统范围内强制使用UTF-8,如下所述:在命令提示符/Windows Powershell (Windows 10)

中使用UTF-8编码(CHCP 65001)

似乎有时Windows shell不使用正确的UTF-8代码页。

你可以通过下面的设置告诉VSCode在shell中强制一个代码页。

  • 打开Settings页面(快捷键:Ctrl+,)
  • 点击右上方的按钮,鼠标悬停的文字为"打开设置(JSON)">
  • 添加以下行:
"terminal.integrated.profiles.windows": {
"PowerShell": {
"source": "PowerShell",
"icon": "terminal-powershell",
"args": [
"-NoExit",
"/c",
"chcp.com 65001"
]
},
"Command Prompt": {
"path": [
"${env:windir}\Sysnative\cmd.exe",
"${env:windir}\System32\cmd.exe"
],
"args": [
"/K",
"chcp 65001"
],
"icon": "terminal-cmd"
},
},

这将强制UTF-8代码页。

如果它工作,打开一个新的shell应该显示Active code page: 65001

来源:https://github.com/microsoft/vscode/issues/19837


以前的,不推荐的设置:

  • 如果你的shell是"CMD"
    "terminal.integrated.shellArgs.windows": ["/K", "chcp 65001"],
    
  • 如果你的shell是"Powershell"
    "terminal.integrated.shellArgs.windows": ["-NoExit", "/c", "chcp.com 65001"],
    

相关内容

  • 没有找到相关文章

最新更新