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

hs1ihplo  于 2023-01-09  发布在  Windows
关注(0)|答案(1)|浏览(174)

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

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

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

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

奇怪的是,在第2行和第3行的开头添加了空格。然而,当程序在VisualStudioCode中运行时,瑞典语字符会失真。

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

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

EDIT:由于该问题在许多系统上均未出现,因此我添加了技术数据:Windows 11专业版版本10.0.22621内部版本号22621; Visual Studio代码版本:1.73.1(用户设置)日期:2022年11月9日 chrome :102.0.5005.167节点名称:16.14.2沙箱:没有。

l0oc07j2

l0oc07j21#

似乎有时候Windows shell没有使用正确的UTF-8代码页。
可以使用以下设置指示VSCode在其shell中强制代码页。

  • 打开Settings页面(快捷键:(x月1日至1x日)
  • 单击右上方的按钮,鼠标悬停文本显示为 "Open Settings(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"],

相关问题