отображать акцентированные символы на консоли mintty (cygwin)? - PullRequest
0 голосов
/ 28 октября 2019

Короче говоря, я хотел бы иметь возможность печатать и отображать символы из iso-8859-1 на моей Cygwin Mintty. к сожалению, я не понял, как это сделать.

моя локаль:

$ locale
LANG=C.ISO-8859-1
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_ALL=C

mintty настроен как xterm (хотя, похоже, не имеет значения, какую эмуляцию терминала явыберите), и с помощью options => text я сконфигурировал раздел 'locale' как C, а набор символов - ISO-8859-1.

, когда я набираю любой акцентированный символ измоя клавиатура, символ не отображается на терминале. однако, если я вызову cat, символы, которые я наберу, отображаются правильно. также, когда я редактирую, используя vi (ну, на самом деле vim), я могу без проблем печатать (и отображать) символы с акцентами. поэтому проблема, похоже, связана с оболочкой, а не с самой эмуляцией терминала.

более того, если я напишу небольшой скрипт для создания файла с именем, например, être.utx, файл отобразитсякак ???tre.utx когда я ls это. глядя на его гекс, я получаю

$ ls *.utx | od -c -tx1
0000000 357 203 252   t   r   e   .   u   t   x  \n
         ef  83  aa  74  72  65  2e  75  74  78  0a
0000013

, поэтому кажется, что сценарий, который я написал, создает файл, имя которого начинается с триграммы 0xEF 0x83 0xAA, а не однобайтовый символ, кодировка которого должна быть 0xEA. я не знаю, как это интерпретировать;я знаю, что это не utf-8, а 0xC3 0xAA.

кажется, что в моей конфигурации cygwin есть только один набор символов, настроенный для поддержки 8859-1: норвежский. [конечно, я полагаю, что мог бы выучить норвежский, но я бы предпочел что-то менее напряженное, если это возможно ...]

в любом случае, кто-нибудь знает, что я делаю неправильно?

Заранее большое спасибо.

1 Ответ

0 голосов
/ 28 октября 2019

Просто установите для mintty в качестве значения что-то utf8-ish.

В моем случае:

Window Menu (Alt+Space)
  Options… (o)
    Text (l.h. panel)
      Locale → en_GB
      Character Set → UTF-8

[Save]

Выйдите и перезапустите

$ locale
LANG=en_GB.UTF-8
LC_CTYPE="en_GB.UTF-8"
LC_ NUMERIC="en_GB.UTF-8"
LC_TIME="en_GB.UTF-8"
LC_COLLATE="en_GB.UTF-8"
LC_MONETARY="en_GB.UTF-8"
LC_MESSAGES="en_GB.UTF-8"
LC_ALL=

$ echo $'\u2154'
⅔

Nice

...