Terminal

GNU Screen 無法正確回顯 unicode 字元

  • August 18, 2021

當我在終端中執行此操作時:

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也無濟於事。

這顯然是一個已知的錯誤:沒有顯示超出BMP的字元,因為螢幕顯然只有一個兩字節的字元緩衝區。

(它在 tmux 中工作)。

這是舊螢幕的已知問題。自 v4.2.0 起已修復

將螢幕更新到最新版本:

sudo apt upgrade screen

其他命令:

  • 查看可用的螢幕版本:apt list -a screen
  • 安裝確切版本:sudo apt install screen=4.3.1-2build1

引用自:https://unix.stackexchange.com/questions/81923