ascII 码和 unicode 对应关系

152 阅读6分钟

主要关注数字所在的位次,大写字母和小写字母所在的位次

从下标 0 开始,前 48 个都不必理会

  • 数字 0-9 的下标是 48-57

  • 大写字母是 65-90

  • 小写字母是 97-122

注意,数字,大写,小写之间都有特殊字符间隔,并不是连续的,判断是什么字符类型的时候,都需要分开判断


(v.v) ➜  tool git:(main) ✗ go run ascii-unicode.go
十进制      十六进制     ASCII    Unicode编码点   Unicode字符
----------------------------------------------------------------
0        0x0      .        U+0000       .
1        0x1      .        U+0001       .
2        0x2      .        U+0002       .
3        0x3      .        U+0003       .
4        0x4      .        U+0004       .
5        0x5      .        U+0005       .
6        0x6      .        U+0006       .
7        0x7      .        U+0007       .
8        0x8      .        U+0008       .
9        0x9      .        U+0009       .
10       0xA      .        U+000A       .
11       0xB      .        U+000B       .
12       0xC      .        U+000C       .
13       0xD      .        U+000D       .
14       0xE      .        U+000E       .
15       0xF      .        U+000F       .
----------------------------------------------------------------
16       0x10     .        U+0010       .
17       0x11     .        U+0011       .
18       0x12     .        U+0012       .
19       0x13     .        U+0013       .
20       0x14     .        U+0014       .
21       0x15     .        U+0015       .
22       0x16     .        U+0016       .
23       0x17     .        U+0017       .
24       0x18     .        U+0018       .
25       0x19     .        U+0019       .
26       0x1A     .        U+001A       .
27       0x1B     .        U+001B       .
28       0x1C     .        U+001C       .
29       0x1D     .        U+001D       .
30       0x1E     .        U+001E       .
31       0x1F     .        U+001F       .
----------------------------------------------------------------
32       0x20              U+0020
33       0x21     !        U+0021       !
34       0x22     "        U+0022       "
35       0x23     #        U+0023       #
36       0x24     $        U+0024       $
37       0x25     %        U+0025       %
38       0x26     &        U+0026       &
39       0x27     '        U+0027       '
40       0x28     (        U+0028       (
41       0x29     )        U+0029       )
42       0x2A     *        U+002A       *
43       0x2B     +        U+002B       +
44       0x2C     ,        U+002C       ,
45       0x2D     -        U+002D       -
46       0x2E     .        U+002E       .
47       0x2F     /        U+002F       /
----------------------------------------------------------------
48       0x30     0        U+0030       0
49       0x31     1        U+0031       1
50       0x32     2        U+0032       2
51       0x33     3        U+0033       3
52       0x34     4        U+0034       4
53       0x35     5        U+0035       5
54       0x36     6        U+0036       6
55       0x37     7        U+0037       7
56       0x38     8        U+0038       8
57       0x39     9        U+0039       9
58       0x3A     :        U+003A       :
59       0x3B     ;        U+003B       ;
60       0x3C     <        U+003C       <
61       0x3D     =        U+003D       =
62       0x3E     >        U+003E       >
63       0x3F     ?        U+003F       ?
----------------------------------------------------------------
64       0x40     @        U+0040       @
65       0x41     A        U+0041       A
66       0x42     B        U+0042       B
67       0x43     C        U+0043       C
68       0x44     D        U+0044       D
69       0x45     E        U+0045       E
70       0x46     F        U+0046       F
71       0x47     G        U+0047       G
72       0x48     H        U+0048       H
73       0x49     I        U+0049       I
74       0x4A     J        U+004A       J
75       0x4B     K        U+004B       K
76       0x4C     L        U+004C       L
77       0x4D     M        U+004D       M
78       0x4E     N        U+004E       N
79       0x4F     O        U+004F       O
----------------------------------------------------------------
80       0x50     P        U+0050       P
81       0x51     Q        U+0051       Q
82       0x52     R        U+0052       R
83       0x53     S        U+0053       S
84       0x54     T        U+0054       T
85       0x55     U        U+0055       U
86       0x56     V        U+0056       V
87       0x57     W        U+0057       W
88       0x58     X        U+0058       X
89       0x59     Y        U+0059       Y
90       0x5A     Z        U+005A       Z
91       0x5B     [        U+005B       [
92       0x5C     \        U+005C       \
93       0x5D     ]        U+005D       ]
94       0x5E     ^        U+005E       ^
95       0x5F     _        U+005F       _
----------------------------------------------------------------
96       0x60     `        U+0060       `
97       0x61     a        U+0061       a
98       0x62     b        U+0062       b
99       0x63     c        U+0063       c
100      0x64     d        U+0064       d
101      0x65     e        U+0065       e
102      0x66     f        U+0066       f
103      0x67     g        U+0067       g
104      0x68     h        U+0068       h
105      0x69     i        U+0069       i
106      0x6A     j        U+006A       j
107      0x6B     k        U+006B       k
108      0x6C     l        U+006C       l
109      0x6D     m        U+006D       m
110      0x6E     n        U+006E       n
111      0x6F     o        U+006F       o
----------------------------------------------------------------
112      0x70     p        U+0070       p
113      0x71     q        U+0071       q
114      0x72     r        U+0072       r
115      0x73     s        U+0073       s
116      0x74     t        U+0074       t
117      0x75     u        U+0075       u
118      0x76     v        U+0076       v
119      0x77     w        U+0077       w
120      0x78     x        U+0078       x
121      0x79     y        U+0079       y
122      0x7A     z        U+007A       z
123      0x7B     {        U+007B       {
124      0x7C     |        U+007C       |
125      0x7D     }        U+007D       }
126      0x7E     ~        U+007E       ~
127      0x7F     .        U+007F       .
----------------------------------------------------------------


✗ cat ascii-unicode.go
package main

import (
	"fmt"
)

func main() {
	// 打印表头
	fmt.Printf("%-8s %-8s %-8s %-12s %-8s\n", "十进制", "十六进制", "ASCII", "Unicode编码点", "Unicode字符")
	fmt.Println("----------------------------------------------------------------")

	// 输出标准ASCII字符表 (0-127)
	for i := 0; i <= 127; i++ {
		// 控制字符通常不可打印,用点号表示
		var asciiChar string
		if i >= 32 && i <= 126 { // 可打印字符范围
			asciiChar = string(rune(i))
		} else {
			asciiChar = "."
		}

		// 获取Unicode编码点和字符
		r := rune(i)
		unicodePoint := fmt.Sprintf("U+%04X", i)

		// 构建Unicode字符的字符串表示
		var unicodeChar string
		if i >= 32 && i <= 126 {
			unicodeChar = string(r)
		} else {
			unicodeChar = "."
		}

		// 打印行
		fmt.Printf("%-8d 0x%-6X %-8s %-12s %-8s\n", i, i, asciiChar, unicodePoint, unicodeChar)

		// 每16个字符后添加分隔线
		if (i+1)%16 == 0 {
			fmt.Println("----------------------------------------------------------------")
		}
	}
}