Проблемы с OS X Terminal UTF-8 - PullRequest
       38

Проблемы с OS X Terminal UTF-8

43 голосов
/ 05 января 2011

Хорошо, так что я наконец-то приобрел MacBook Air после 15 лет Linux.И до того, как я его получил, меня больше всего беспокоила поддержка UTF-8, потому что независимо от того, получаю ли я файлы, отправленные мне из windows или mac-клиентов, всегда возникают проблемы с кодировкой, а в Ubuntu я могу быть уверен, что все выводятся независимо от того, какая программа будетпроизводить идеальные данные в кодировке UTF-8.

И теперь, на мой второй день (сегодня) с OS X, я рву волосы на волосах от разочарования.Почему?

Когда я открываю Nano и вписываю в него некоторые шведские символы, такие как ÅÄÖ, он выводит пустые символы в конце строки (который, я думаю, является другим байтом в каждом символе)

Когда я открываю python и пытаюсь использовать шведские символы, он вообще ничего не выводит

Когда я подключаюсь к серверу Ubuntu через SSH, я не могу набрать ääö в bash, хотя он работает в VIM (все еще через SSH),И в нано Backspace не работает, но если флажок «Удалить отправляет Ctrl + H» в настройках терминала, Backspace начинает работать в Nano, но перестает работать в VIM.

Я пытался снять все остальные кодировкизатем UTF-8 в терминальных настройках, но, похоже, это тоже не работает.

Я уверен, что у каждого неамериканца должны быть такие же проблемы, так как мне их исправить?Мне просто нужна полная поддержка UTF-8 ...: '(

Ответы [ 12 ]

37 голосов
/ 05 мая 2011

Мне помогло это: Я проверил локаль на своей локальной оболочке в терминале

$ locale
LANG="cs_CZ.UTF-8"
LC_COLLATE="cs_CZ.UTF-8"

Затем подключился к любому удаленному хосту, который я использую через ssh и отредактировал файл / etc / profile как root - в конце я добавил строку:

export LANG=cs_CZ.UTF-8

После следующего подключения он отлично работает в bash, ls и nano.

16 голосов
/ 10 марта 2011

К сожалению, диалоговое окно «Настройки» не всегда очень полезно, но, настраивая его, вы сможете заставить все работать.

Чтобы иметь возможность вводить шведские символы в терминале, добавьте следующие строки в ~ / .inputrc (скорее всего, вы должны создать этот файл):

set input-meta on
set output-meta on
set convert-meta off

Это должно работать как с utf8, так и с другими кодировками в bash, nano и многими другими программами. Некоторые программы, такие как tmux, также зависят от locale. Затем добавление, например, export LC_ALL=en_US.UTF-8 в файл ~/.profile должно помочь, но имейте в виду, что для некоторых (в основном непонятных) программ требуется стандартная локаль, поэтому, если у вас возникли проблемы с запуском или компиляцией программы, попробуйте вернуться к 1012 *.

Некоторые ссылки, которые могут быть полезны:

14 голосов
/ 05 января 2011

Перейти к Terminal -> Preferences -> Advanced (Tab) перейти к International и выбрать Unicode (UTF-8) как Character Encoding.

И галочка Set locale environment variables on startup.

13 голосов
/ 16 июля 2014

Ниже приводится краткое изложение того, что вам нужно сделать в OS X Mavericks (10.9). Все это обобщено в

http://hints.macworld.com/article.php?story=20060825071728278

  1. Перейдите в Терминал-> Настройки-> Настройки-> Дополнительно.

    В Международный убедитесь, что для кодировки символов установлено значение Юникод (UTF-8) .

    Кроме того, и это является ключевым: в Эмуляция , убедитесь, что Вход Escape без ASCII с Control-V не проверен (т. Е. не установлен ).

    Эти две настройки исправляют ошибки в терминале.

  2. Убедитесь, что для вашей локали установлено значение, которое заканчивается на .UTF-8. Введите locale и посмотрите на строку LC_CTYPE. Если в нем не указано что-то вроде en_US.UTF-8 (то, что находится перед точкой, может измениться, если вы используете не-американский-английский язык), тогда в вашем Bash .profile или .bashrc в вашем домашнем каталоге добавьте строка как это:

    export LC_CTYPE=en_US.UTF-8
    

    Это исправит проблемы с программами командной строки в целом.

  3. Добавьте следующие строки в .inputrc в вашем домашнем каталоге (создайте его при необходимости):

    set meta-flag on
    set input-meta on
    set output-meta on
    set convert-meta off
    

    Это делает Bash чистым на восемь битов, поэтому он будет пропускать и выводить символы UTF-8, не мешая им.

Имейте в виду, что вам придется перезапустить Bash (например, закрыть и снова открыть окно терминала), чтобы он обращал внимание на все настройки, сделанные вами в пунктах 2 и 3 выше.

9 голосов
/ 16 января 2017

Краткий универсальный ответ (подходит для других национальных языков, даже литовских или русских)

  • открыть терминал
  • редактировать .profile в домашней директории - nano .profile
  • добавить строку export LC_ALL=en_US.UTF-8
  • нажать Ctrl + x и Y (выйти и сохранить)

Это решило для меня даже небольшую страну редких национальных символов.Вам может потребоваться закрыть и открыть терминал, чтобы изменения вступили в силу.

Также, если вам нравится поведение Linux (используйте множество сочетаний клавиш Alt, таких как Alt + или Alt +, в mc), вам следует отключить функцию клавиши Option в стиле Mac:Терминал-> Настройки-> Профили-> Клавиатура и флажок: Use Option as Meta key

5 голосов
/ 14 марта 2015

Мой терминал просто действовал глупо, не распечатывая сообщения. Я нашел (и установил) этот параметр: enter image description here

Под Terminal -> Preferences... -> Profiles -> Advanced.

Кажется, я решил мою проблему.

4 голосов
/ 15 марта 2013

Чтобы заставить nano работать так, как вы хотите, попробуйте:

export LANG="UTF-8"

Или получите более новую версию nano через MacPorts:

# cf. http://www.macports.org/install.php
port info nano
port variants nano
sudo port install nano +utf8 +color +no_wrap

По поводу проблем с ssh & UTF-8 закомментируйте SendEnv LANG LC_* в /etc/ssh_config.

См .: Терминал в OS X Lion: невозможно записать данные на удаленную машину

3 голосов
/ 06 января 2011

Проверьте, действительно ли nano был собран с поддержкой UTF-8, используя nano --version.Вот это на Cygwin:

nano --version
 GNU nano version 2.2.5 (compiled 21:04:20, Nov  3 2010)
 (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
 2008, 2009 Free Software Foundation, Inc.
 Email: nano@nano-editor.org    Web: http://www.nano-editor.org/
 Compiled options: --enable-color --enable-extra --enable-multibuffer
 --enable-nanorc --enable-utf8

Обратите внимание на последний бит.

1 голос
/ 28 сентября 2012

Поскольку nano является терминальным приложением.Я предполагаю, что это больше проблема терминала, чем проблема nano.

Я встречался с подобными проблемами в OS X (я не могу вводить и просматривать китайские символы в терминале).

Я попытался настроить параметры системычерез OS X UI, реальный эффект которого - изменение переменной окружения LANG.

Итак, наконец, я просто добавляю некоторые вещи в ~ / .bashrc для решения проблемы.

# I'm Chinese and I prefer English manual
export LC_COLLATE="zh_CN.UTF-8"
export LC_CTYPE="zh_CN.UTF-8"
export LC_MESSAGES="en_US.UTF-8"
export LC_MONETARY="zh_CN.UTF-8"
export LC_NUMERIC="zh_CN.UTF-8"
export LC_TIME="zh_CN.UTF-8"

Кстати, донне устанавливать LC_ALL, который будет переопределять все остальные настройки LC_ *.

0 голосов
/ 24 ноября 2018

Попробуйте

  1. Наличие установленного шрифта, совместимого с Powerline https://github.com/powerline/fonts
  2. Установка этих переменных ENV в .zshrc или .bashrc:
LANG="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL="en_US.UTF-8"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...