LINUX.ORG.RU

Некорректное отображение кириллицы

 ,


0

2

Приветствую. На удалённом сервере zsh отображает кириллицу криво (вот так: http://s2.ipicture.ru/uploads/20131001/821SdilX.png), такое ощущение, что используется какая-то кодировка отличная от utf-8. ~/.zshrc на локальной машине и на удалённой — идентичны, но на локальной всё хорошо. На удалённой в bash тоже всё ок.

~/.zshrc: https://github.com/unclechu/zshrc/blob/master/.zshrc Дистр. на удалённой машине: CentOS 5

P.S. В vim-е например всё ок с кириллицей.

UPD: Проблема выявляется только при вводе, cat файла, содержащего кириллицу отображается корректно.

А если сделать cat какого-нибудь файла с русскими буквами, всё ОК?

P.S. В vim-е например всё ок с кириллицей.

Т.е. можно набирать текст на удалённом сервере в vim в кириллице, и всё ОК?

И что, кстати, даёт locale на локальной машине?

proud_anon ★★★★★ ()
Последнее исправление: proud_anon (всего исправлений: 3)
Ответ на: комментарий от proud_anon

Ага, так. Проблема именно при вводе.

Т.е. можно набирать текст на удалённом сервере в vim в кириллице, и всё ОК?

Да, в vim-е всё ок.

И что, кстати, даёт locale на локальной машине?

$ locale
LANG=ru_RU.UTF-8
LC_CTYPE="ru_RU.UTF-8"
LC_NUMERIC="ru_RU.UTF-8"                                                                                                                                                                                   [~]
LC_TIME="ru_RU.UTF-8"
LC_COLLATE="ru_RU.UTF-8"
LC_MONETARY="ru_RU.UTF-8"
LC_MESSAGES="ru_RU.UTF-8"
LC_PAPER="ru_RU.UTF-8"
LC_NAME="ru_RU.UTF-8"
LC_ADDRESS="ru_RU.UTF-8"
LC_TELEPHONE="ru_RU.UTF-8"
LC_MEASUREMENT="ru_RU.UTF-8"
LC_IDENTIFICATION="ru_RU.UTF-8"
LC_ALL=
unclechu ()
Последнее исправление: unclechu (всего исправлений: 2)

Может, попробовать закомментировать в ~/.zshrc строки с 19 по 115, потом перелогиниться на обеих машинах и перепроверить? Вдруг какая-то проблема в танцах с zle?

proud_anon ★★★★★ ()
Последнее исправление: proud_anon (всего исправлений: 1)
Ответ на: комментарий от proud_anon

Не прокатило, проблема осталась. Я вообще попробовал даже .zshrc «удалить», это не лечит.

unclechu ()
Ответ на: комментарий от proud_anon

Тут тоже вроде ничего подозрительного:

unclechu@met> cat zshenv [/etc]
#
# /etc/zshenv is sourced on all invocations of the
# shell, unless the -f option is set.  It should
# contain commands to set the command search path,
# plus other important environment variables.
# .zshenv should not contain commands that produce
# output or assume the shell is attached to a tty.
#

unclechu@met> cat zshrc [/etc]
#
# /etc/zshrc is sourced in interactive shells.  It
# should contain commands to set up aliases, functions,
# options, key bindings, etc.
#

## shell functions
#setenv() { export $1=$2 }  # csh compatibility

# Set prompts
PROMPT='[%n@%m]%~%# '    # default prompt
#RPROMPT=' %~'     # prompt for right side of screen

# bindkey -v             # vi key bindings
# bindkey -e             # emacs key bindings
bindkey ' ' magic-space  # also do history expansion on space

# from bashrc
if [ "x$SHLVL" != "x1" ]; then # We're not a login shell
    for i in /etc/profile.d/*.sh; do
	if [ -r "$i" ]; then
	    . $i
	fi
    done
    unset i
fi

unclechu ()
Ответ на: комментарий от unclechu

Это не шутка, я подумал, что странно: буква «д» отобразилась правильно, а «ы» и «ф» нет. Непонятно, это зависит от порядка символов или просто оно в принципе так?

proud_anon ★★★★★ ()
Ответ на: комментарий от proud_anon

Речь о том, что для него этот лунный трансформируется вот в такие плюшки: \M-4\M-P\M-^K\M-Q, в то время как на локальной машине ничего не трансформируется, пишу кириллицей и получаю:

zsh: command not found: ды -дф

А вот что будет с ыд -фд:

�^�д -�^�д                                                    [~]
zsh: command not found: \M-Q\M-^K\M-P\M-4

unclechu ()
Ответ на: комментарий от proud_anon

Вот прошёлся в 3 ряда по клавиатуре:

й�^��^�кенг�^��^�з�^��^
�^��^�вап�^�олдж�^
�^��^��^�ми�^��^�б�^

А вот что будет если в конце третьего ряда я ещё нажму точку:

�^��^��^�ми�^��^�б�^�.

Это говорит о том, что присутствует незавершённый код символа. Потому как если просто нажать точку, то артефакта (�) не появится.

unclechu ()
Последнее исправление: unclechu (всего исправлений: 1)
Ответ на: комментарий от unclechu

Ну... могу сказать, что из проверенных кириллических символов отображаются те, которые в UTF-8 кодируются как 0xD0 0xBX (где X - любая цифра от 0 до F), а остальные бьются.

Больше, к сожалению, идей нет, придётся ждать знающих людей.

proud_anon ★★★★★ ()

zsh --version с удаленной машины покажи

ananas ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.