LINUX SCREEN窗口中文乱码问题

http://blog.solrex.org/articles/linux-screen-chinese-encodings.html

环境:Linux Dist: CentOS 4.3,locale: en_US.UTF-8, .vimrc: set fencs=gbk

目标:终端使用 less/more/grep 等命令正确显示 GBK 编码文件内容,vim 正确显示 GBK 编码文件汉字

症状:

1. 系统自带 gnome-terminal 在设置终端编码为 GBK 后,能达到目标。

2. 使用 xshell 在 windows 平台上设置终端编码为 default 时,ssh 登录到 CentOS,能达到目标。

3. 在 screen 命令窗口内,无论终端还是 vim, 中文均显示为乱码,无法达到目标。

解决办法:在 ~/.screenrc 中,添加下面两句:

defencoding GBK
encoding UTF-8 GBK

我的猜测是 xshell、gnome-terminal 等终端能够将自身编码传给系统,因此系统能够对输出自动进行转码。而 screen 属于终端中的终端,它自身的编码不是 GBK,导致传给系统以后没有对输出进行转码。设置 screen 的编码和转换规则后,就 OK 了。

VSCode (Visual Studio Code) 中文显示码在终端通常是由于编码设置不匹配造成的。以下是解决步骤: 1. **检查默认编码**:确保终端的默认字符编码是UTF-8。可以在终端设置里查找`"terminal.integrated.shell.windows"`(Windows)或`"terminal.integrated.shell.linux"`(Linux/Mac)的值,设置成合适的路径加上`-utf8`,比如`"/bin/bash -utf8"`。 2. **设置终端配置**:打开终端控制台,输入 `echo $TERM` 查看当前终端类型,然后在用户设置(`Settings.json`)或工作区设置(`Workspace Settings.json`)中添加相应的配置项。例如,对`xterm`终端,可以增加如下配置: ```json "terminal.integrated.encoding": "UTF-8" ``` 或者针对特定终端类型设置: ```json { "terminal.integrated.defaultFontFamily": "Consolas", "terminal.integrated.fontLigatures": false, "terminal.integrated.fontSize": 14, "terminal.integrated.lineHeight": 1.5, // 针对 xterm 终端 "terminal.integrated.cursorStyle": "block", "terminal.integrated.tabs.showOnLineNumbers": true, "terminal.integrated.rendererType": "dom", "terminal.integrated.shellArgs.windows": ["cmd", "/u", "/c"], "terminal.integrated.shellArgs.linux": ["xterm", "-encoding", "UTF-8"], "terminal.integrated.shellArgs.osx": ["-e", "TERM=screen-256color"] } ``` 3. **重启终端**:更改设置后,记得关闭并重新打开终端窗口,让新的设置生效。 如果你已经尝试了以上步骤仍然有码,可能是你的系统环境变量或者某些特殊程序需要单独处理。你可以检查你的系统编码设置,以及文件和目录的编码一致性。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值