Golang 符文
在过去,我们只有一个字符集,那就是ASCII(美国信息交换标准代码)。在那里,我们用7个比特来表示128个字符,包括大写和小写英文字母、数字以及各种标点符号和设备控制字符。由于这种字符的限制,大多数人无法使用他们自定义的书写系统。为了解决这个问题,Unicode被发明了。Unicode是ASCII的一个超集,包含了当今世界书写系统中的所有字符。它包括重音、变音符号、控制代码(如制表符和回车符),并为每个字符分配一个标准数字,称为 “Unicode代码点”,或在Go语言中称为 “符文”。符文类型是int32的一个别名。
重要提示
- 永远记住,字符串是一个字节的序列,而不是一个符文的序列。字符串可以包含以UTF-8编码的Unicode文本。但是,Go源代码编码为UTF-8,因此,不需要用UTF-8编码的字符串。
- UTF-8对1到4个字节范围内的所有Unicode进行编码,其中1个字节用于ASCII,其余用于符码。
- ASCII总共包含256个元素,其中128个是字符,0-127个被确定为码位。这里,码位指的是代表一个单一数值的元素。
例子
它是一个符文,十六进制值为♄。
符文字面
它代表了一个符文常量,其中一个整数值可以识别一个Unicode码位。在Go语言中,Rune Literal表示为一个或多个用单引号括起来的字符,如’g’, ‘\t’等。在单引号之间,你可以放置任何字符,除了换行和未转义的单引号。在这里,这些单引号字符本身代表了给定字符的Unicode值,而带有反斜杠的多字符序列(在多字符序列的开头)则以不同的格式编码值。在符文文学中,所有以反斜杠开头的序列都是非法的,只有以下单字符转义在你使用反斜杠时代表特殊的值。
字符 | Unicode | 说明 |
---|---|---|
\a | U+0007 | 警报或铃声 |
\b | U+0008 | backspace |
\f | U+000C | form feed |
\n | U+000A | 换行或换行 |
\r | U+000D | 回车 |
\t | U+0009 | 水平制表符 |
\v | U+000b | vertical tab |
\\ | U+005c | 反斜线 |
\’ | U+0027 | 单引号 |
\” | U+0022 | 双引号(仅在字符串字元中合法) |
例1 :
输出
例2:
输出