Por que § permite que eu remova dois caracteres em um bash promt?

1

Este é um problema estranho e muito específico no terminador. Quando eu digito o caractere "§" em uma janela de terminal e, em seguida, pressiono o retrocesso duas vezes, ele permite que eu sempre remova dois caracteres, mesmo se eles fizerem parte da string PS1.

Etapas para reproduzir:

  1. Digite "§" no terminal.
  2. Apague 2 caracteres.
  3. Repetir.
por Gustav Blomqvist 26.03.2017 / 09:32

1 resposta

4

Soa como configurações incompatíveis de UTF-8 entre o seu terminal e a localidade do aplicativo.

O sinal de seção não faz parte do conjunto de caracteres ASCII, sendo representado como dois bytes em UTF-8. Seu terminal provavelmente o envia como tal, mas o lado da aplicação não percebe que deve representar apenas um caractere e imprime como apenas um. O editor da linha de comando mantém uma contagem de quantos caracteres você inseriu e, como acha que o sinal da seção é de dois caracteres, ele permite que você retroceda nessa quantidade. O terminal sabe que é apenas um e exibe e retrocede como um.

    
por 26.03.2017 / 10:58