Когда я запускал команду xclock
в терминале, я всегда получал следующее предупреждение:
Warning: Missing charsets in String to FontSet conversion
Я отредактировал свой файл ~/.bashrc
и добавил в конец следующую строку:
export LC_ALL=C
И после этого моя консоль получила странное поведение - я могу удалить начальные символы, описывающие текущего пользователя и путь, где он расположен.
1113 Это случается, если я пишу что-то на кириллице. Когда я пытаюсь вставить первую букву кириллицы, все, что я написал до этого, заменяется символом�
. Затем я могу удалить начальные символы в моей консоли, продолжая нажимать кнопку backspace
Почему переменная LC_ALL
повлиять на мой терминал и как я могу решить проблему с предупреждением xclock
без ущерба для терминала?
Все оказалось действительно так, как сказал пользователь @egmont
.
Когда переменная LC_ALL
, определенная как C
, устанавливает кодировку для всех приложений, предположительно, в ASCII (в общем, важно только, чтобы кодирование было изменено на другое, которое не поддерживает кириллицу)
Первоначально LC_ALL
не был определен. Если это так, вы можете проверить это, набрав:
echo $LC_ALL
Переменная будет пустой, если вы получите пустую строку.
Предупреждение xclock
, как я понимаю, появляется из-за этого - из-за отсутствия явно заданной кодировки
Если вы установите LC_ALL
C
, как указано в большинстве интернет-советов, вы четко указываете кодировку. И эта кодировка не UTF-8
Для решения проблемы вы должны явно указать кодировку, которая поддерживает кириллицу. Вы можете сделать это, добавив следующую строку в конец вашего файла ~/.bashrc
:
export LC_ALL=C.UTF-8