在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"],