GNU屏幕无法正确回显Unicode字符


14

当我在终端上执行此操作时:

echo -e "\xF0\x9f\x8d\xba"

我在终端机中得到一个很酷的啤酒杯:🍺

但是,当我启动屏幕并尝试相同操作时,我得到了一个``。我如何获得漂亮的啤酒杯?

这是我的.screenrc:

nethack on
startup_message off
defscrollback 3000
hardstatus on
hardstatus alwayslastline
hardstatus string "%{.bW}%-w%{.rW}%n %t%{-}%+w %=%{..G} %H %{..Y} %m/%d %c"
termcapinfo xterm 'bc@:bs@'
ignorecase on
maptimeout 0
vbell off
defutf8 on
defencoding utf8

同时运行带有该-U选项的屏幕也无济于事。


是U + FFFD,Unicode替换字符。这意味着您的计算机无法识别字节试图代表的字符。在这些测试期间,您是否从物理终端切换到终端仿真器?
Andrew B

当我在不启动屏幕的情况下在终端中执行此操作时,当我启动屏幕并执行相同操作时,它不起作用。它在同一台机器和同一终端上。我一直在使用终端模拟器。
gitaarik

您正在使用哪种终端仿真器?
dawud

Answers:


20

这显然是一个已知的错误BMP之外的任何字符都不会显示,因为屏幕显然只有两个字节的字符缓冲区。

(它在tmux中有效)。


真是太糟糕了。过去尝试过tmux,但是它崩溃了很多。也许我可以在某个时候再尝试一下
gitaarik

顺便说一句更新:我已经使用tmux很长时间了并且喜欢它。几乎不会崩溃,并具有出色的可配置性和插件。花了一些时间对其进行配置,以使其可以很好地工作,但是值得付出努力:)。
gitaarik '16

6
更新:自v4.2.0起该错误已修复!sudo apt install screen=4.2.1-2~ubuntu14.04.1为我工作。
亚当·蒙森

值得注意的是,即使在4.6.2-1ubuntu1Lubuntu Bionic Beaver(18.04)的版本中,unicode字符也无法在GNU屏幕的硬状态下工作。
zrajm
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.