使用转义序列显示特殊字符
除非使用汇编语言编程,否则必须使用普通的字母、数字和其他符号来编写代码。没有办法摆脱这一切。无论选择何种编程语言,您将使用的每个关键字、操作符和符号都来自于现实世界的语言。如果我们不需要在程序中使用字符串,这就没有那么糟糕了。但是,任何值得使用的程序都必须与用户交互,而字符串是我们完成这一任务的唯一工具。幸运的是,所有的编程语言都带有一组字符串转义序列,我们可以在字符串中使用这些转义序列来实现特殊字符和短语。
什么是转义序列?
根据维基百科,转义序列是改变计算机及其附属设备状态的一系列字符。也被称为控制序列,这些字符序列让我们处理计算机的任务,如果没有这些任务,计算机是不可能工作的。
所有转义序列都以表示序列开始的转义字符开始。在过去,这个字符是由Esc键发送的专用字符,但今天,大多数编程语言使用反斜杠(\)来代替。不管转义字符是什么,所有转义序列都允许我们通过程序访问和显示不可打印字符和其他特殊的硬件特性。
标准的转义序列
虽然所有的编程语言都有自己的转义序列集,但许多语言共享为C编程语言开发的相同的基本标准字符集。在下表中可以找到最常见的序列。只要记住这些代码是区分大小写的。使用错误的case会导致运行时错误和其他bug。
\ ' | 单引号 |
\” | 双引号 |
、一个 | 听到铃 |
\ b | 退格 |
\ f | 换页 |
\ n | 换行符 |
r \ | 回车 |
\ s | 空白或空白 |
\ t | 水平选项卡 |
除了表中的序列外,标准集还包括整个Unicode字符集的序列。实际上,您可以输入任何字符,包括可打印和不可打印的字符,只要使用它们的十六进制Unicode序列作为转义序列即可。要使用这种格式,使用\x作为转义字符,后面跟着相应的Unicode。例如,转义序列\x56是字母V。
下面是一个使用其中一些代码的示例。
# include < iostream >;int main() {std::printf("This\nis\na\ntest\n\nShe said, \"How are you?\" n");}
这个例子输出如下:
这是一个测试,她说:“你好吗?”
如您所见,您将转义码作为字符串中的普通字符来实现。对他们来说没有别的了。
HTML转义序列
虽然大多数语言使用上面的C转义代码,但也有一些明显的例外,包括HTML。
HTML使用两组不同的转义序列。第一种称为HTML字符实体,在HTML代码中直接用于表示特殊字符。另一种字符集用于网络浏览器,允许在网络地址中使用特殊字符和非英语字符。
对于大多数人来说,您只需要知道HTML字符代码。这些转义序列使用与符(&)作为转义字符,必须以分号(;)结尾。下表包括最常见的HTML转义序列。在所有这些方法中,你最有可能使用 最多。它意味着不间断的空间,它创造了一个网页浏览器不能忽略的空间。
显示 | 的名字 | HTML实体 | Unicode |
---|---|---|---|
插入空格 | , | ||
< | 不到 | & lt; | < |
> | 超过 | 比; | > |
& | & | , | & |
” | 双引号 | “; | ” |
© | 版权 | 软件是 | © |
® | 注册商标 | <; | ® |
™ | 商标(美国) | 贸易; | ™ |
× | 乘法 | 报; | × |
÷ | 除号 | 划分; | ÷ |
从表中可以看到,这里也可以通过使用序列作为转义字符来使用Unicode。虽然此列表仅涵盖表面,但您可以通过简单的互联网搜索找到HTML字符实体的完整列表。
HTML字符实体的工作方式类似于C转义序列。将它们插入到字符串、属性和文本中。网络浏览器从那里开始。只要记住HTML转义序列必须以分号结束,否则您的网页可能不会显示为您所期望的。还要注意,HTML代码和C代码一样区分大小写。
至于URL字符实体,它们只是前面加上百分比(%)符号的Unicode序列。
其他非标准转义序列集
虽然您很可能会遇到上述两组序列,但也有一些非标准集合具有它们自己的转义字符和序列格式。这些替代方法中最常见的是简单地重复输入所需的字符。通常由BASIC编程语言(如Visual BASIC)使用,通过输入每个转义字符两次来编写这些序列。由于只能使用双类型的可打印字符,这些编程语言通常为非打印字符(如制表符和换行符)提供特殊的字符串常量。
在Udemy中查看如何在Visual Basic中使用转义序列
底线
转义序列的存在是为了帮助我们在程序中嵌入不可打印的字符或硬件控件。虽然每种编程语言都有自己的转义规则,但大多数序列都以一个特殊的转义字符开始,后面跟着实际的字符代码。有些语言(如HTML)也需要结尾字符。虽然您可能永远不会使用转义序列,但转义序列可以让您的程序显示标点符号并格式化其输出。