Estou acessando um computador remoto usando ssh e executando um comando bash para inserir símbolos usando o fluxo de entrada padrão:
read test;echo $test
Não há problema em inserir letras em inglês e usar o backspace para excluí-las. Em seguida, insira outros caracteres e repita essas etapas quantas vezes quiser.
Mas isso se torna um desastre quando uso outros símbolos utf-8, como os russos, que requerem 2 bytes em vez de 1, como os ingleses.
Por exemplo, eu insiro:
абвгдежз
Depois disso, uso o retrocesso por 8 vezes e insiro outros símbolos:
привет
e pressione a tecla Enter. Mas em vez do resultado que seria igual a minha última entrada, recebo o seguinte:
абвгпривет
O que significa que 8 backspace deletaram apenas 4 símbolos.
Eu uso o Linux Ubuntu 12.04. Tentei diferentes consoles: um padrão, terminador; diferentes tipos de opções de retrocesso (como ASCII-del ou Ctrl + H); definindo $ LC_TYPE para ru_RU.UTF-8, mas nada funciona.
Não existe esse problema usando o console local.
Obrigado antecipadamente.
update: Eu também tenho um vídeo sobre esse problema, assista no youtube