- [root@iZ28b4rx8dxZ ~]# yum install ascii
- [root@iZ28b4rx8dxZ ~]# ascii
- Usage: ascii [-dxohv] [-t] [char-alias...]
- -t = one-line output -d = Decimal table -o = octal table -x = hex table
- -h = This help screen -v = version information
- Prints all aliases of an ASCII character. Args may be chars, C \-escapes,
- English names, ^-escapes, ASCII mnemonics, or numerics in decimal/octal/hex.
- Dec Hex Dec Hex Dec Hex Dec Hex Dec Hex Dec Hex Dec Hex Dec Hex
- 0 00 NUL 16 10 DLE 32 20 48 30 0 64 40 @ 80 50 P 96 60 ` 112 70 p
- 1 01 SOH 17 11 DC1 33 21 ! 49 31 1 65 41 A 81 51 Q 97 61 a 113 71 q
- 2 02 STX 18 12 DC2 34 22 " 50 32 2 66 42 B 82 52 R 98 62 b 114 72 r
- 3 03 ETX 19 13 DC3 35 23 # 51 33 3 67 43 C 83 53 S 99 63 c 115 73 s
- 4 04 EOT 20 14 DC4 36 24 $ 52 34 4 68 44 D 84 54 T 100 64 d 116 74 t
- 5 05 ENQ 21 15 NAK 37 25 % 53 35 5 69 45 E 85 55 U 101 65 e 117 75 u
- 6 06 ACK 22 16 SYN 38 26 & 54 36 6 70 46 F 86 56 V 102 66 f 118 76 v
- 7 07 BEL 23 17 ETB 39 27 ' 55 37 7 71 47 G 87 57 W 103 67 g 119 77 w
- 8 08 BS 24 18 CAN 40 28 ( 56 38 8 72 48 H 88 58 X 104 68 h 120 78 x
- 9 09 HT 25 19 EM 41 29 ) 57 39 9 73 49 I 89 59 Y 105 69 i 121 79 y
- 10 0A LF 26 1A SUB 42 2A * 58 3A : 74 4A J 90 5A Z 106 6A j 122 7A z
- 11 0B VT 27 1B ESC 43 2B + 59 3B ; 75 4B K 91 5B [ 107 6B k 123 7B {
- 12 0C FF 28 1C FS 44 2C , 60 3C < 76 4C L 92 5C \ 108 6C l 124 7C |
- 13 0D CR 29 1D GS 45 2D - 61 3D = 77 4D M 93 5D ] 109 6D m 125 7D }
- 14 0E SO 30 1E RS 46 2E . 62 3E > 78 4E N 94 5E ^ 110 6E n 126 7E ~
- 15 0F SI 31 1F US 47 2F / 63 3F ? 79 4F O 95 5F _ 111 6F o 127 7F DEL
- [root@iZ28b4rx8dxZ ~]#
截个图显示一下:
- >>> print chr(169)
- ©
- >>> print chr(189) #chr这个函数把数字转换成字符
- ½
- >>> print chr(174)
- ®
1、在计算机里面一个字节是 8 位二进制,8 位二进制可以表示 255 个字符,但是 ASCII 只有 128 个,也就是说第八位的那个 bit 是没有用的,只用到了后面的 7 个 bit 来表示 ASCII,但是 latin-1 就把第八位的那个 bit 用到了,换句话说就是把一个字节的最高位的 bit 也使用上了。
2、latin-1 虽然对 ASCII 进行了扩展,可以表示最多为 256 个字符,但是,它仅适合美国英语,甚至一些英语中常用的标点符号、重音符号都不能表示,无法表示各国语言,特别是中文等表意文字(一种用象征性书写符号记录词或词素的文字体系,不直接或不单纯表示语音。 )台湾地区繁体中文标准字符集,采用双字节编码,也称为大五码,具体的信息我就不介绍了,百度上一堆
1995 年 12 月发布的汉字编码国家标准,是对 GB2312 编码的扩充,对汉字采用双字节编码。GBK 字符集共收录 21003 个汉字,包含国家标准 GB13000-1 中的全部中日韩汉字,和 BIG5 编码中的所有汉字。
最一开始,在 Unicode 出现之前,各地区国家制定了不同的编码系统,也就是说中文自己进行编码,如 GB 2312 和大五码等,日文也自己进行编码,如主要用 JIS ,这样会造成混乱不便,例如一个文本信息里面混合了不同的语言,就不能正确的表示信息,也就是无法进行混合的使用。把 "张三" 编码成为 utf-8
- In [24]: name = u'张三'
- In [25]: name
- Out[25]: u'\u5f20\u4e09'
这其中的转换过程如下所示:把 5f20 和 4e09 分别翻译成二进制然后转为 utf-85f20:翻译为二进制:0101 1111 0010 0000 按照上面码点范围的转换方式,5f20 应该属于第三个范围 也就是 1110+0101(四位)+10+111100(六位)+10+100000(六位):1110 0101 1011 1100 1010 0000 e 5 b c a 04e09:翻译为二进制:0100 1110 0000 1001 按照上面码点范围的转换方式,4e09 应该属于第三个范围 也就是 1110+0100(四位)+10+111000(六位)+10+001001(六位):1110 0100 1011 1000 1000 1001 e 4 b 8 8 9 下一篇会在 Python 里面详细理解 Unicode 与 utf-8
- In [26]: name.encode('utf-8')
- Out[26]: '\xe5\xbc\xa0\xe4\xb8\x89' #张:e5 bc a0 三:e4 b8 89
来源: