
Я использую сервер Arch Linux, к которому я подключаюсь с нескольких машин Windows с помощью VcXsrv, чтобы я мог запускать графические приложения (и более настраиваемые терминалы, чем те, которые я могу получить с PuTTY и т. д.). Однако у меня возникли некоторые проблемы с символами urxvt и UTF-8 из раздела UTF-8 Dingbats, а именно, они не отображаются. Я использую Dingbats для отображения статуса git в приглашении оболочки, а также для отображения статуса выхода команд.
locale.conf:
LANG=en_US.UTF-8
Вывод локали:
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
Конфигурация urxvt (~/.Xdefaults):
URxvt*scrollTtyOutput: false
URxvt*scrollWithBuffer: true
URxvt*scrollTtyKeypress: true
URxvt*scrollBar: false
URxvt*cursorBlink: true
URxvt*background: black
URxvt*foreground: green
URxvt*font: xft:Hack:size=10, xft:Unifont:size=10
URxvt*locale: true
URxvt*skipBuiltinGlyphs: true
URxvt*xftAntialias: true
URxvt*saveLines: 10000
URxvt*eightBitInput: false
Информация о версии urxvt:
rxvt-unicode (urxvt) v9.22 - released: 2016-01-23
options: perl,xft,styles,combining,blink,iso14755,unicode3,encodings=eu+vn+jp+jp-ext+kr+zh+zh-ext,
fade,transparent,tint,XIM,frills,selectionscrolling,wheel,slipwheel,cursorBlink,
pointerBlank,scrollbars=plain+rxvt+NeXT+xterm
Я вижу все символы латиницы, катаканы, хираганы, хангыля, китайского (традиционного, упрощенного), кириллицы, персидского (большинства), грузинского и т. д. Но дингбаты выглядят вот так, когда я их печатаю:
Я использую zsh в vim-режиме, если это имеет значение.
Поискав в Google, я нашел только один совет: убедитесь, что моя локаль установлена на UTF-8, а шрифты имеют необходимые глифы. Я думаю, что и то, и другое я гарантировал.
Где я мог ошибиться?
решение1
Проблема возникает из-за использования символов, которые находятся в плоскости частного использования Unicode, в которой нет гарантии, что в ней есть что-то конкретное. Системы Windows XP могут явно редактировать шрифты там с помощью команды eudcedit
, у Mac есть логотип Apple в одном из 6400 символов в этой плоскости, и, проще говоря, вы используете неправильные дингбаты.
Правильные дингбаты — от 9985 до 10175 в десятичной системе (от 2701 до 27bf в шестнадцатеричной системе).