Поврежденный сеанс gnu-screen не отображает UTF-8 правильно

(Отредактировано, чтобы прояснить роль Emacs в проблеме с дисплеем.)

Мой текущий сеанс gnu-screen каким-то образом испорчен, и Emacs не отображает символы UTF-8 должным образом.

Я подтвердил, что в недавно запущенных процессах gnu-screen Emacs правильно отображает символы UTF-8, но на данный момент было бы очень разрушительно заменить поврежденный сеанс gnu-screen на новый, а вместо этого

Я ищу способы дальнейшего устранения проблемы с этой поврежденной сессией gnu-screen и, надеюсь, исправить ее.


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

Я начал этот сеанс gnu-screen несколько дней назад на моей рабочей станции OS X при работе с

 % screen -U 

… (как я всегда это делаю). С тех пор я повторно подключил этот сеанс с нескольких компьютеров (возможно, после первого ssh -ing на мою рабочую станцию ​​на работе), используя

 % screen -U -dR 

(опять же, это то, что я всегда делаю). Я сделал это сегодня утром на своей рабочей станции на работе (машина, на которой фактически работает gnu-screen ).

Сегодня, впервые с тех пор, как я создал этот сеанс gnu-screen , мне нужно было работать с файлами, которые содержат много символов не-ascii UTF-8. Именно тогда я обнаружил, что этот сеанс gnu-screen должен каким-то образом испорчен, потому что он отображает все эти символы как ? , что приводит к непригодному отображению.

(Как я уже упоминал, эти UTF-8-богатые файлы отображаются корректно с помощью недавно запущенных сеансов gnu-screen , поэтому я уверен, что проблема отображения связана с конкретным сеансом gnu-screen который я здесь вызываю «поврежден». Кроме того, я подтвердил, что «отображение» отображается в каждом терминале, к которому я подключил сеанс gnu-screen , поэтому проблема заключается не в терминальной программе, в которой размещается сеанс gnu-screen . Наконец, Я также подтвердил, что проблема заключается не в одном конкретном сеансе Emacs: в поврежденном сеансе gnu-screen каждый новый сеанс Emacs отображает символы UTF-8 как ? Который утверждает, что проблема связана с конкретным сеансом Emacs.)

Я подтвердил, что utf8 ,

 :utf8 on on 

Вывод :info

 (1,5)/(210,52)+10000 +(-)flow app log UTF-8 0(zsh) 

И, FWIW:

 % /usr/local/bin/screen --version Screen version 4.00.03 (FAU) 23-Oct-06 

Кроме того, я должен отметить, что новые

Что еще можно сделать для устранения этой проблемы?


ОБНОВЛЕНИЕ: Drav Sloan и Stephane Chazelas спросили о моих настройках локали:

 % locale LANG= LC_COLLATE="C" LC_CTYPE="C" LC_MESSAGES="C" LC_MONETARY="C" LC_NUMERIC="C" LC_TIME="C" LC_ALL= 

В настоящее время для OS XI не задаются никакие языковые переменные.

В системах Linux мой .zshenv действительно устанавливает

 export LANG=en_US.utf8 export LC_ALL=en_US.utf8 

… но если я помещу те же строки в моем .zshenv на Darwin, я получаю сообщения об ошибках, что «установка локали не удалась». Я смутно помню, как я несколько раз бил свой череп над проблемой поиска правильных настроек языка для Дарвина / Льва. Возможно, что «установление ничего» появилось как «наименее ужасное» решение проблемы, и в конце концов, по крайней мере, свежие сеансы gnu-screen действительно отображают символы UTF-8 правильно, даже при отсутствии явной настройки локали. Но, очевидно, мне нужно выяснить, как правильно установить языковой стандарт в Darwin / Lion …

UPDATE2: Хорошо, я думаю, что я выяснил причину ошибок, о которых я упоминал выше: в Darwin / Lion строка en_US.utf8 недействительна; вместо этого он должен быть en_US.UTF-8 .

  • .ssh / config, чтобы указать распределение псевдо-tty и выполнение команды
  • Экран закрытия и перезапуска - заканчивается обманом!
  • Как найти подходящий «командный символ» для экрана GNU?
  • Экран Linux: список экранных списков
  • Экран Cron & Gnu - проблема с отдельным экраном
  • Как отключить экран GNU от внесения изменений в заголовок окна шпатлевки
  • Значок доллара на экране
  • Как открыть новое окно, используя только один ярлык на экране gnu?
  • One Solution collect form web for “Поврежденный сеанс gnu-screen не отображает UTF-8 правильно”

    У меня была такая же проблема при запуске:

     git clone https://github.com/jwiegley/git-scripts.git cd git-scripts perl git-forest 

    Я использовал это как свой тест. В принципе, вы должны получить хорошие строки, если вы правильно установили utf8. Если нет, вы получите уродливые коробки или символы.

    Решение состоит в том, что вам нужно установить LC_ALL в en_US.UTF-8 ПЕРЕД началом нового сеанса экрана. Я устал делать это после создания сеанса экрана и не повезло.

    Вот шаг, который я последовал, чтобы добиться этого:

    1) Запустите locale чтобы просмотреть текущую настройку. Я получил это (это объясняет, почему у меня возникли проблемы:

     LANG=en_US.UTF-8 LC_CTYPE="C" LC_NUMERIC="C" LC_TIME="C" LC_COLLATE="C" LC_MONETARY="C" LC_MESSAGES="C" LC_PAPER="C" LC_NAME="C" LC_ADDRESS="C" LC_TELEPHONE="C" LC_MEASUREMENT="C" LC_IDENTIFICATION="C" LC_ALL=C 

    2) Перед созданием нового сеанса экрана вам необходимо переопределить LC_ALL в en_US.UTF-8

    если вы используете оболочку csh

     setenv LC_ALL en_US.UTF-8 

    если вы используете оболочку bash

     export LC_ALL="en_US.UTF-8" 

    3) Проверьте, что LC_ALL был установлен правильно, снова запустив locale :

     LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL=en_US.UTF-8 

    4) Теперь запустите новый сеанс экрана и запустите тест git-forest и вы увидите красивые строки

    Interesting Posts

    Создание базы списка слов по возможным номерам / символам через Crunch в Kali Linux

    ddrescue: перечитывать только хорошие сектора?

    Возьмите стандартный ввод / вывод запущенного процесса под FreeBSD / macOS

    Изменение разрешения консоли в Core (не Tiny Core) Linux

    Ошибка монтирования NFS

    Как переустановить Linux Mint, чтобы мои предыдущие данные не потерялись?

    Kali Linux никогда не загружается

    Почему моя команда xmodmap не запускается при запуске / входе?

    shell-скрипты с большим количеством файлов – timelapse

    Debian Wheezy Потеря видеосвязи при загрузке

    Анализ аргументов командной строки из pargs в сценарии оболочки

    Shell Script – перенаправленный вывод в файл и результаты не ожидаются в первом запуске

    Предотвращать передачу SSH-клиента переменной TERM на сервер?

    Oracle Weblogic IPv6 с базой данных Oracle на IPv4

    как я могу изменить разрешения для всех подкаталогов, кроме 1 папки, используя одну команду find?

    Linux и Unix - лучшая ОС в мире.