Unicode中的"Backspace" U+0008有什么用途?

15

在编程中,Unicode字符 'BACKSPACE' (U+0008) 的作用是什么?它可以用于哪些应用?


4
如果您无法确定特定Unicode符号的用途,那么它很可能属于“个人娱乐”类别,就像U+2603和U+1F4A9一样。 :-) - jørgensen
3
这两个字符实际上有一个真正的用途:与包含这些字符的其他字符集(在这种情况下,都是日本来源的!)实现完全兼容。 - user149341
1个回答

14

在终端输出时,它通常将光标向左移动一个位置(取决于设置)。在输入时,它通常会删除最后输入的字符(取决于应用程序和终端设置),尽管 DEL / DELETE 字符也用于此目的。通常可以通过按 BackspaceControl-H 输入。

请注意,它删除字符的操作仅在显示器上进行,而不是在内存中。运行程序中的字符串可以包含几乎任何序列的字符(可能取决于语言),包括退格键。在那种情况下,它通常只是另一个字符。例如,在 C 中,strlen("abcd\b") 是 5,而不是 3。

在 C 和许多其他语言中,它在程序源中表示为 '\b'。有时它显示为 ^H

无论它是否表示为 Unicode,所有这些都适用。退格字符通常存在于大多数或所有字符集中:ASCII、Latin-1、各种 Unicode 表示形式 -- 即使 EBCDIC 也具有不同代码的退格字符。


3
"this\b"的长度为5。向字符串添加一个退格字符并不会从字符串中移除字符。它删除字符的操作仅在显示屏上发生,而不是在内存中。 - Keith Thompson
1
请注意,当\b被写入打印机而不是屏幕时,它会进行重叠而不是删除。这允许使用原始方式实现下划线(A\b_)、粗体(A\bA)或带重音的字符(n\b~)。 - dan04
2
支持ASCII模式的打印机应该支持它,因为它是ASCII的一部分。但是使用退格符进行下划线(例如man)的程序通常会产生_\bA而不是A\b_。这样,在没有重叠的终端上,字母会覆盖下划线,而不是反过来。 - alexis
1
@KeithThompson,这并没有解释退格字符为什么首先被发明出来... - Pacerier
1
@KeithThompson,那么退格字符的目的是什么? - Pacerier
显示剩余14条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接