Display Chinese in Pure Text Terminal

Published | Updated | Go Back

Fbterm is the old tool I newly found for dis­play­ing Chinese char­ac­ters in pure text ter­mi­nal.

I had some dis­play dri­ver is­sues the other day and I could­n’t launch the graph­i­cal in­ter­face on my desk­top ma­chine. I had to work un­der the pure text ter­mi­nal. It does­n’t sup­port dou­ble width char­ac­ters like Chinese, which hap­pens to be my de­fault dis­play­ing lan­guage. As a re­sult, some com­mand out­puts just showed gib­ber­ish di­a­mond char­ac­ters. I had to change the lan­guage en­vi­ron­ment vari­able tem­porar­ily so that the out­put was switched to English. Out of cu­rios­ity, I started look­ing for a so­lu­tion for dis­play­ing Chinese char­ac­ters in pure text ter­mi­nal.

After some search­ing and test­ing, I fi­nally got Fbterm. It is also men­tioned in the Arch Linux wiki. Basically, it is an­other ter­mi­nal em­u­la­tor that supports dou­ble width scripts like Chinese, Japanese, etc”. Simply start it via the com­mand fbterm in the pure text ter­mi­nal, and Chinese char­ac­ters should dis­play cor­rectly. For me, this is enough, so I did­n’t try adding Chinese in­put meth­ods un­der Fbterm. I think it’s tech­ni­cally pos­si­ble.

Note one caveat though. The de­vel­op­ment for Fbterm has stopped a long time ago. I just use it oc­ca­sion­ally, and I’d say that it is still pretty good at its own job.

Updates on 2020-08-18: Apparently, Fbterm has been re­moved from AUR and its wiki page is archived due to pack­age be­ing too old. Although I be­lieve one can still build it from the source, it’s time to find an al­ter­na­tive. zh­con is by far the best one I’ve found. It even has a built-in Chinese in­put method. Awesome. Its user in­ter­face re­minds me of the an­cient UCDOS. Those were the days.

Updates on 2021-05-24: I’ve just done a res­cue task to save my desk­top where LightDM won’t start. zhcon did­n’t dis­play the Chinese char­ac­ters prop­erly for some rea­son, and I had to go back to the old LANG=C and LANG=en.