Làm cách nào để hiển thị Unicode trong thiết bị đầu cuối ảo Linux?


19

Đọc bất kỳ dữ liệu nào trong Unicode không hiển thị chính xác trong thiết bị đầu cuối Linux (có nghĩa là thiết bị đầu cuối ảo mở mà không có cửa sổ X).

Tôi đã đọc trong một cuộc thảo luận ở đây rằng cài đặt các chương trình như JFBTERM , và nó hoạt động, vì vậy tôi tự hỏi liệu không có cách nào để cấu hình (consolefonts?) Thiết bị đầu cuối để xử lý unicode đúng cách mà không cần thêm phần mềm nào.

Trên các thiết bị đầu cuối Windows (gnome-terminal, xterm, v.v.), nó trông như thế này:

thiết bị đầu cuối gnome

Trên thiết bị đầu cuối ảo trông như thế này:

vt

Trên thiết bị đầu cuối ảo với JFBTERM, nó trông như thế này:

ngày mai

Đây là một ảnh chụp màn hình của đầu ra của locale:

miền địa phương

Đây là đầu ra của showconsolefont:

showconsolefont

Có ai biết nếu có thể thực hiện tương tự chỉ với thiết bị đầu cuối ảo mặc định?

Câu trả lời:


5

Phông chữ điều khiển có thể tải các phông chữ lên tới 512 (tôi nghĩ, hoặc một cái gì đó tương tự) các glyph khác nhau; thường chỉ có 256 glyphs.

Để hiển thị tiếng Latin, Cyrrilic hoặc các ngôn ngữ khác sử dụng ít hơn 200 ký hiệu không phức tạp là không có vấn đề.

Tuy nhiên, đối với các tập lệnh phức tạp hoặc tập lệnh cần nhiều ký hiệu khác nhau (như tiếng Nhật), bạn không có khả năng nào khác ngoài việc sử dụng bố cục bổ sung để xử lý nó.

Lưu ý rằng nếu giới hạn 512 phải đủ cho ASCII và cả hai bộ Kana, thì có vấn đề về chiều rộng.

CJK và Kana vừa với một hình vuông, chúng có chiều rộng gấp đôi các chữ cái Latinh. Đó không phải là thứ mà giao diện điều khiển có thể xử lý ra khỏi hộp.

Bạn có thể dùng đến một nửa băng thông cũ và xấu xí Katakana (và thậm chí có thể tìm thấy một phông chữ cũ của một thứ như vậy), hoặc đặt bàn điều khiển của bạn thành chiều rộng 40 cột và có chữ Latin rộng như Kana.

Tôi không biết bất kỳ phông chữ điều khiển như vậy với Kana; bạn nên tự vẽ (có những công cụ để làm như vậy và bạn chỉ có thể sao chép các chấm của phông chữ bitmap nhật bản.

Ngoài ra, bạn có thể sử dụng iconvđể chuyển ngữ kana sang ASCII.


3

Bạn cần một phông chữ thực sự có những ký tự này. Arch Linux chẳng hạn khuyến nghị Lat2-Terminus16.

Để thử nó, chỉ cần đưa ra lệnh sau trong bảng điều khiển ảo : setfont Lat2-Terminus16.

Đối với phần còn lại, hầu hết các bản phân phối hiện đại đã hỗ trợ nó ra khỏi hộp.


2

Ngoài ra LANG/LC_ALL, stty iutf8cần phải nói cho thiết bị đầu cuối biết phải làm gì, setfontsau đó bạn có thể cần tải một phông chữ và ánh xạ hữu ích. Nếu bạn vẫn gặp sự cố, hãy kiểm tra cấu hình kernel của bạn để biết CONFIG_NLS_xxcài đặt, bạn có thể cần phải modprobe nls_utf8tự động tải nó (tôi nghĩ rằng điều này chỉ bắt buộc đối với tên tệp Unicode).

Một số bản phân phối linux cung cấp unicode_startunicode_stopcác kịch bản để tự động hóa việc này.

Nếu lessgây ra sự cố, nó có thể yêu cầu biến môi trường LESSCHARSETđược đặt (hoặc bỏ đặt nếu sai).

Câu hỏi thường gặp về UTF-8 và Unicode của Markus Kuhn cho Unix / Linux là vô giá.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.