【问题标题】:What is the purpose of Unicode "Backspace" U+0008?Unicode“退格”U+0008 的目的是什么?
【发布时间】:2012-01-22 07:57:51
【问题描述】:

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

【问题讨论】:

  • 如果您无法确定特定 Unicode 符号的用途,它可能属于“个人娱乐”类别,就像 U+2603 和 U+1F4A9 一样。 :-)
  • 这两个字符实际上有一个真正的目的:与包括这些字符的其他字符集(在这种情况下都是日本血统!)完全兼容。

标签: unicode backspace control-characters


【解决方案1】:

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

来输入

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

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

无论是否表示为 Unicode,所有这些都适用。退格符对大多数或所有字符集都很常见:ASCII、Latin-1、各种 Unicode 表示形式——甚至 EBCDIC 也有退格符(但代码不同)。

【讨论】:

  • "this\b" 的长度为 5。向字符串添加退格字符不会从字符串中删除字符。它删除字符的动作发生在显示器上,而不是内存中。
  • 请注意,当\b 被写入打印机而不是屏幕时,它会覆盖而不是删除。这允许以原始方式实现下划线 (A\b_)、粗体 (A\bA) 或重音字符 (n\b~)。
  • @dan04:可能,但我不知道打印机上对\b 的支持是否普遍。
  • 具有 ascii 模式的打印机应该支持它,因为它是 ASCII 的一部分。但是带有退格下划线的程序(例如man)通常产生_\bA,而不是A\b_。这样,在没有覆盖的终端上,字母会覆盖下划线,而不是相反。
  • @KeithThompson,这并不能解释为什么首先发明退格字符.....
猜你喜欢
  • 1970-01-01
  • 2013-06-06
  • 2017-12-25
  • 1970-01-01
  • 1970-01-01
  • 2020-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多