如何在Linux虛擬終端機中顯示Unicode?

如何在Linux虛擬終端機中顯示Unicode?

讀取 Unicode 中的任何資料都無法在 Linux 終端機(表示在沒有 X windows 的情況下開啟的虛擬終端)中正確顯示。

我讀在這裡的討論中安裝程序,例如JFB術語,而且它確實有效,所以我想知道是否沒有任何方法可以配置(控制台字體?)終端以正確處理 unicode,而無需任何額外的軟體。

在 Windows 終端機(gnome-terminal、xterm 等)上,它看起來像這樣:

gnome 終端

在虛擬終端上它看起來像這樣:

VT

在具有 JFBTERM 的虛擬終端上,它看起來像這樣:

傑夫特姆

這是輸出的螢幕截圖locale

語言環境

這是輸出showconsolefont

顯示控制台字體

有誰知道是否可以使用預設的虛擬終端來完成相同的任務?

答案1

您需要一種實際包含這些字元的字體。例如,Arch Linux 推薦Lat2-Terminus16

要嘗試它,只需在虛擬控制台中發出以下命令:setfont Lat2-Terminus16

至於其餘的,大多數現代發行版已經開箱即用地支援它。

答案2

控制台字體可以載入多達 512 種(我認為,或類似的)不同的字形;然而通常只有 256 個字形。

顯示拉丁語、西里爾語或其他使用少於 200 個非複雜符號的語言是沒有問題的。

但是,對於複雜的腳本或需要大量不同符號(例如日語)的腳本,您除了使用額外的佈局來處理它之外別無選擇。

請注意,如果 512 的限制足以滿足 ASCII 和兩個假名集的要求,則存在寬度問題。

CJK 和假名適合一個正方形,它們的寬度是拉丁字母的兩倍。這不是控制台可以立即處理的事情。

你可以求助於又舊又醜的“半角片假名”(甚至可能找到這種東西的舊字體),或者將你的控制台設置為 40 列寬度,並讓拉丁字母與假名一樣寬。

我不知道有任何這樣的帶有假名的控制台字體;你應該自己繪製(有工具可以這樣做,你可以複製點陣圖日語字體的點。

此外,您也可以iconv將假名音譯為 ASCII。

答案3

除了LANG/LC_ALL,stty iutf8需要告訴終端要做什麼之外,您可能還需要setfont加載有用的字體和映射。如果您仍然遇到問題,請檢查內核配置的CONFIG_NLS_xx設置,如果它沒有自動加載,您可能需要這樣做modprobe nls_utf8(不過我認為這僅適用於 Unicode 檔案名稱)。

一些 Linux 發行版提供了unicode_start腳本unicode_stop來自動執行此操作。

如果less導致問題,可能需要LESSCHARSET設定環境變數(如果錯誤則取消設定)。

馬庫斯·庫恩Unix/Linux 的 UTF-8 和 Unicode 常見問題解答是無價的。

答案4

透過安裝統一工具你可以找到unicode。

$ sudo apt-get install uniutils

然後使用uniname

ubuntu@shin-instance:~$ echo 岡田shin | uniname
No LINES variable in environment so unable to determine lines per page.
Using default of 24.
character  byte       UTF-32   encoded as     glyph   name
        0          0  005CA1   E5 B2 A1       岡      CJK character Nelson  621
        1          3  007530   E7 94 B0       田      CJK character Nelson 2994
        2          6  000073   73             s      LATIN SMALL LETTER S
        3          7  000068   68             h      LATIN SMALL LETTER H
        4          8  000069   69             i      LATIN SMALL LETTER I
        5          9  00006E   6E             n      LATIN SMALL LETTER N
        6         10  00000A   0A                     LINE FEED (LF)
ubuntu@shin-instance:~$

相關內容