Lý lịch:
- Tôi có một số ký tự unicode trong dấu nhắc của mình (về cơ bản đánh dấu trạng thái git)
- Tôi đang chạy urxvt dưới xfce trên arch linux.
Tôi đang sử dụng DejaVu Sans Mono cho phông chữ Powerline, được chỉ định qua dòng .Xresource:
URxvt*font: xft:DejaVu Sans Mono for Powerline:pixelsize=14
Khi tôi bắt đầu urxvt, các ký tự unicode không hiển thị chính xác.
Ví dụ
● ám chỉ là â
Tuy nhiên, nếu sau đó tôi bắt đầu một cái mới urxvt
từ bên trong thiết bị đầu cuối thì mọi thứ sẽ hiển thị chính xác.
Dường như không có sự khác biệt nào về môi trường giữa hai thiết bị đầu cuối.
Điều gì có thể là sự khác biệt giữa lần gọi đầu tiên và lần gọi lồng nhau? Tôi nghi ngờ phông chữ không chính xác trong trường hợp 'bên ngoài', nhưng tôi không chắc cách kiểm tra phông chữ của cửa sổ X đang chạy
CẬP NHẬT : Có vẻ như miền địa phương không được thiết lập chính xác trong trình khởi chạy ứng dụng cho xfce4, nhưng có lẽ lớp vỏ bên trong thiết bị đầu cuối đầu vào là ngôn ngữ riêng, có nghĩa là cả hai vỏ đều có cùng miền.
thêm
export LANG=en_GB.UTF-8
đến .xinitrc trước khi xfce4 được khởi động dường như để sửa nó. Tôi nghi ngờ đây không phải là cách chính xác , nhưng nó hoạt động đủ tốt với tôi.
ảnh chụp màn hình cho thấy vấn đề:
Lưu ý: Tôi đã chuyển câu hỏi này từ serverfault.com - tôi hy vọng trang web này phù hợp hơn
LC_ALL=ru_RU.utf8 urxvt
từ phiên X hiện tại. Nếu ký tự tiếng Nga (và các ký tự Unicode khác) trở thành chính xác, bạn sẽ gặp trường hợp môi trường của bạn đang chạy dưới ngôn ngữ C. Vì vậy, kiểm tra cài đặt ngôn ngữ cho xfce
. Ví dụ: nếu bạn đã bắt đầu, .xinitrc
hãy thử đặt ngôn ngữ trước khi chạy như thế nào LANG=ru_RU.utf8 exec startxfce4
.