郦珠雨 发表于 2025-10-5 17:45:21

[vscode] 解决windows使用vscode连接linux的gbk_gb18030终端出现乱码问题

本地windows11,使用vscode远程连接Centos7.9
远端Linux因为别的原因必须保持终端是GB18030(gbk的父集),但是vscode的终端没办法切换成gb18030。这就会导致vscode这边的终端中文都会乱码。
我的解决方案是使用luit luit – Locale and ISO 2022 support for Unicode terminals
安装

通过yum安装的luit使用会崩溃,所以需要编译安装
下载后执行下面的命令在远端Linux编译安装
./configure
# 如果要指定安装位置,则指定 --prefix= 参数即可
make -j8
make install之后应该可以使用luit命令了
使用

在vscode的远程linux终端中,执行luit -encoding gb18030 ssh user@127.0.0.1
就会原地再套一个终端,但是这时候luit会把原先的输出转码为utf8,所以此时vscode不会乱码了
自动化

接着,在.bashrc中追加如下代码
# 你可以在 已打开的终端列表项 鼠标悬停窗口中加载的脚本(shellintegration-bash.sh)中找到这个变量
if [[ -n "${VSCODE_SHELL_INTEGRATION:-}" ]]; then
        luit -encoding GB18030 ssh user@127.0.0.1
fi这样vscode打开终端时会进入到luit中,但其他软件打开终端不受影响
为了免密码登录,还需要将.ssh中的公钥添加到authorized_keys中,这样就能实现无感知进入luit了

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: [vscode] 解决windows使用vscode连接linux的gbk_gb18030终端出现乱码问题