Назад | Перейти на главную страницу

Локаль Linux: en_US.UTF-8 против en_US

Обычно я настраиваю свой ubuntu через

sudo locale-gen --purge en_US.UTF-8

И я установил локали

# locale -a
C
C.UTF-8
en_US.utf8
POSIX

Это нормально, так как я скучаю en_US?

Да, ты, наверное, в порядке. Предполагая en_US.utf8 содержит американский / английский языковой стандарт UTF-8, он должен работать нормально. Вот что использую сам:

% echo $LANG
en_US.UTF-8

Если ты бежишь locale -v -a, будет немного нагляднее:

% locale -v -a
locale: en_US           archive: /usr/lib64/locale/locale-archive
-------------------------------------------------------------------------------
    title | English locale for the USA
   source | Free Software Foundation, Inc.
  address | http://www.gnu.org/software/libc/
    email | bug-glibc-locales@gnu.org
 language | English
territory | USA
 revision | 1.0
     date | 2000-06-24
  codeset | ISO-8859-1

locale: en_US.utf8      archive: /usr/lib64/locale/locale-archive
-------------------------------------------------------------------------------
    title | English locale for the USA
   source | Free Software Foundation, Inc.
  address | http://www.gnu.org/software/libc/
    email | bug-glibc-locales@gnu.org
 language | English
territory | USA
 revision | 1.0
     date | 2000-06-24
  codeset | UTF-8

Единственная разница между en_US и en_US.utf8 в том, что первый использует ISO-8859-1 для набора символов, а второй использует UTF-8. Предпочитаю UTF-8. Единственная разница в том, каких персонажей они могут изображать. ISO-8859-1 представляет символы, общие для многих американцев (английский алфавит плюс несколько букв с диакритическими знаками), тогда как UTF-8 кодирует весь Юникод и, следовательно, практически любой язык, который вы можете придумать. Сегодня UTF-8 - это стандартная кодировка для текста. (Вот почему вы должны предпочесть это.)

en_US.utf8 содержит все, что делает ASCII, но я не думаю, что он охватывает что-то большее. Ваша система не сможет печатать / просматривать символы, кроме этих, и будет отображать рамку (или рамку со знаком вопроса), когда встретит один из этих неизвестных символов.