将非 ascii (utf8) 粘贴到远程 urxvt 终端

将非 ascii (utf8) 粘贴到远程 urxvt 终端

对于粘贴文本,在 urxvt/rxvt-unicode 中,可以使用middle button粘贴主要选择。

我可以在本地 urxvt 终端甚至远程服务器中以中文/utf8 字符串进行此类鼠标中键单击粘贴。 EG 如果我在环境date下运行LANG=zh_CN.utf8,我会得到:

$ date
2023年 03月 18日 星期六 15:01:11 EDT

然后我可以用鼠标选择Chinese/utf8 字符串星期六和鼠标中键单击粘贴进入我的 urxvt 终端(在我的 echo 之后),例如:

$ echo 星期六
星期六

在我的本地 urxvt 终端甚至远程服务器中。但是,如果我 ssh 到其他本地计算机或 Oracle 云,然后尝试相同的方法,而不是echo 星期六显示在命令行上,我会得到:

在此输入图像描述

如果我选择整个echo 星期六, 并传递到远程会话中,那么它将适用于我的本地计算机或 Oracle 云服务器。

这是说明它的屏幕截图:

在此输入图像描述

例如

  • 中文/utf8 字符串无法正常粘贴到我的远程 urxvt 终端中。
  • 但是,如果中文/utf8 字符串之前有一些前导的正常 ascii 字符,则可以正常粘贴整个内容。

我的所有环境在所有环境中的配置都是相同的,所以我想我的配置一定有一些奇怪的地方,它只能在本地工作,而不能远程工作。

(我的本地计算机和 Oracle 云服务器显示中文/utf8 字符串/文件名就很好。)

更新:更多调试信息

$ locale 
LANG=zh_CN.utf8
LANGUAGE=
LC_CTYPE="zh_CN.utf8"
LC_NUMERIC="zh_CN.utf8"
LC_TIME="zh_CN.utf8"
LC_COLLATE="zh_CN.utf8"
LC_MONETARY="zh_CN.utf8"
LC_MESSAGES="zh_CN.utf8"
LC_PAPER="zh_CN.utf8"
LC_NAME="zh_CN.utf8"
LC_ADDRESS="zh_CN.utf8"
LC_TELEPHONE="zh_CN.utf8"
LC_MEASUREMENT="zh_CN.utf8"
LC_IDENTIFICATION="zh_CN.utf8"
LC_ALL=

$ locale charmap
UTF-8

$ grep '^set.*meta' ~/.inputrc
set meta-flag on
set input-meta On
set output-meta On

如何修复它?

相关内容