![将非 ascii (utf8) 粘贴到远程 urxvt 终端](https://linux22.com/image/218484/%E5%B0%86%E9%9D%9E%20ascii%20(utf8)%20%E7%B2%98%E8%B4%B4%E5%88%B0%E8%BF%9C%E7%A8%8B%20urxvt%20%E7%BB%88%E7%AB%AF.png)
对于粘贴文本,在 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
如何修复它?