Есть ли в любом случае сценарий bash (или любой другой оболочки), чтобы определить, поддерживает ли текущий терминал символы Юникода? - PullRequest
7 голосов
/ 12 февраля 2011

Я хотел бы использовать символы Юникода, если они поддерживаются терминалом, и использовать символы ASCII, если терминал пользователя не может правильно их отображать. Есть ли относительно простой способ сделать это в сценарии оболочки?

Ответы [ 2 ]

3 голосов
/ 12 февраля 2011

Во-первых, вы, вероятно, путаете Юникод с определенной кодировкой. Предположим, вы знаете, что терминаль поддерживает символы Юникода - вы все еще не знаете, как их печатать!

Вы, вероятно, думаете о чем-то вроде UTF-8, самой популярной кодировки Unicode из существующих.

Чтобы получить кодировку текущей локали, используйте

locale charmap

Это кодировка текущей локали , и теоретически она может отличаться от кодировки, используемой терминалом, но в этом случае что-то не работает на стороне пользователя.

0 голосов
/ 12 февраля 2011

В сценарии печати

: установить кодировку = utf-8

Если вы хотите, чтобы ваш терминал поддерживал Unicode, станьте новым терминалом с опцией -u8

введите в терминале xterm -u8

...