Os caracteres do Terminal.app definem alterações - completamente ilegíveis

Os caracteres do Terminal.app definem alterações - completamente ilegíveis

Acabei sshde entrar no meu servidor (Ubuntu 10.04.2) e executei aptitude(no modo interativo). Assim que pressionei uma tecla (uma das letras, gacredito), ela se transformou nisso (não apenas na sessão SSH; esse comportamento continuou depois que encerrei a sshsessão):

Termo 1

Termo 2

Posso me reconectar e tudo ficará bem, mas quando executo aptitudenovamente, o mesmo problema acontece (mas, por incrível que pareça, está contido em aptitude).

Alguém tem alguma ideia do que poderia estar acontecendo? Se ajudar, estou rodando screencom um byobuperfil, meu $TERMé screen-bce, e estou usando Terminal.appno 10.6.7.

Responder1

Você poderia usar o comando resetpara recuperar seu terminal normal.

Quanto ao motivo disso estar acontecendo - de alguma forma, seu terminal está obtendo dados binários em vez de ASCII.

Responder2

Sei que este tópico tem quase um ano, mas como acabei de encontrar esse problema depois de usar "cat" para exibir o conteúdo de um executável no Terminal.app da Apple, imagino que essa situação também poderá afetar futuros usuários.

De qualquer forma, até onde eu sei, os caracteres estranhos aparecem depois que o caractere "shift out" ASCII (decimal 14, 0x0E) é impresso. (Bem, a palavra "impresso" pode não ser apropriada porque, pelo menos para Terminal.app, este não é um caractere imprimível, mas espero que você entenda o que quero dizer.) Felizmente, o terminal volta ao normal se o ASCII " shift in" (decimal 15, 0x0F) é impresso.

Em outras palavras, se alguém escrevesse um programa C como...

#include <stdio.h>
int main() {
   printf( "\x0F" );
   return 0;
}

Deve fazer tudo voltar ao normal. Provavelmente existe uma maneira ainda mais fácil em um idioma diferente ou dentro do shell bash, mas espero que você tenha entendido.

Aparentemente, esse comportamento estranho não é um bug, mas sim um recurso obscuro (pelo menos para mim). Quando procurei informações, fui direcionado para a ISO 2022, que parece ser a base do que o terminal está fazendo. Aqui está oArtigo da Wikipédia sobre ISO/IEC 2022.

Espero que esta postagem tenha sido útil agora que o mistério por trás dos estranhos personagens foi esclarecido.

Responder3

O item do cardápio

Terminal > Shell > Enviar redefinição

redefine o estado do terminal para os padrões, incluindo o conjunto de caracteres, o que resolve esse problema específico.

informação relacionada