Backspace via SSH only deletes last byte of characters (no IUTF8 handling, requires standardisation work)
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
openssh (Debian) |
Fix Released
|
Unknown
|
|||
openssh (Ubuntu) |
Fix Released
|
Low
|
Unassigned |
Bug Description
Binary package hint: openssh-client
This is not a terminal-related problem: regardless of the terminal used and the way the backspace key is supposed to behave (ASCII DEL, escape sequence, Control+H), what happens is that via SSH the backspace key only deletes the last byte of a character, not the whole character itself.
You can notice this when you use UTF-8 characters that are encoded on more than 1 byte. Some diacritics from the Latin alphabet are encoded on 2 bytes, whereas some Japanese characters are encoded on 3.
As an example, assume the following scenario: the letter "ș" is encoded as "c8 99" and endline is encoded as "0a":
user@host:~$ cat > ș.txt
ș
^d
user@host:~$ hexdump -C ș.txt
00000000 c8 99 0a |...|
00000003
Now, assume you write "testș[hit backspace]
user@host:~$ cat > test.txt
testș[backspace
^d
user@host:~$ hexdump -C test.txt
00000000 74 65 73 74 74 65 73 74 0a |testtest.|
00000009
whereas the *same* thing via SSH would lead you to having the following hexdump:
user@host:~$ ssh user@localhost
user@localhost's password:
user@host:~$ cat > test.txt
testș[backspace
^d
user@host:~$ hexdump -C test.txt
00000000 74 65 73 74 c8 74 65 73 74 0a |test.test.|
0000000a
So notice how backspace only deleted via SSH the last byte of "ș" i.e. only the "99" out of "c8 99"; compare the expected hexdump:
74 65 73 74 74 65 73 74 0a
with the actual hexdump:
74 65 73 74 c8 74 65 73 74 0a
locale is set to en_US.UTF-8; changing it to ro_RO.UTF-8 (both on the host and via SSH) yields the same results.
Finally, last details:
Ubuntu 9.04
Kernel 2.6.28-13-generic
openssh-client: Installed: 1:5.1p1-5ubuntu1
openssh-server: Installed: 1:5.1p1-5ubuntu1
L.E.: I also tried the same thing using dropbear instead of OpenSSH.
description: | updated |
Changed in openssh (Debian): | |
status: | Unknown → New |
summary: |
- Backspace via SSH only deletes last byte of characters + Backspace via SSH only deletes last byte of characters (no IUTF8 + handling, requires standardisation work) |
Changed in openssh (Debian): | |
status: | New → Fix Released |
On Wed, Nov 02, 2005 at 12:25:54PM +0100, Vincent Lefevre wrote:
> When I do a ssh from a terminal with IUTF8 flag set, this flag is
> no longer set on the other side. The easiest way to test this is
> to do a ssh to localhost.
Sorry, I'm not familiar with the IUTF8 flag; as far as I know, the
terminal emulator I generally use (pterm) doesn't support it. What
terminal are you using?
--
Colin Watson [<email address hidden>]