Sshを使用してリモートコンピューターにアクセスし、bashコマンドを実行して、標準入力ストリームを使用して記号を入力します。
テストを読む; echo $ test
英語の文字を入力し、バックスペースを使用してそれらを削除してから、他の文字を入力して、この手順を何度でも繰り返してもかまいません。しかし、ロシア語の記号のように、英語の記号のように1バイトではなく2バイトを必要とする他のutf-8記号を使用すると、災害になります。例:次のように入力します:
абвгдежз
その後、バックスペースを8回使用し、他の記号を入力します。
あいさつ
そして、Enterキーを押します。しかし、最後の入力と同じ結果になる代わりに、次のようになります。
абвгпривет
これは、8つのバックスペースが4つのシンボルのみを削除したことを意味します。
私はlinuxubuntu12.04を使用しています。さまざまなコンソールを試しました:標準のもの、ターミネーター。さまざまなタイプのバックスペースオプション(ASCII-delまたはCtrl + Hなど)。 $ LC_TYPEをru_RU.UTF-8に設定しますが、何も機能しません。ローカルコンソールを使用しても、このような問題はありません。前もって感謝します。
更新:この問題のビデオもあります。 youtubeでご覧ください
実行することでこれを回避できます
stty iutf8
そこにSSH接続するたびにサーバー上で。残念ながら、このバグは2005年から存在しています。詳細については、 debianフォーラム をご覧ください。 .bashrcファイルの最後にこの行を追加することもできます。
LC_CTYPE
をUTF-8ロケールに設定する必要があります。 ru_RU.UTF-8
またはen_US.UTF-8
。 locale -a
を使用して、使用可能なロケールを一覧表示できます。