ascii gbk utf-8 编码问题
来源:互联网 发布:软件系统安全 编辑:程序博客网 时间:2024/06/07 06:28
首先我们需要明白计算机底层中所有东西只能由010101二进制表现出来的,那么我们如何用01二进制来表现我们生活中字母数字呢?聪明的远古人类想到将01二进制数字和我们生活中的文字关联起来,形成一一对应。这样我们在计算机内部实际存储的是数字,而我们看到的则是经过渲染的文字。
一、ASCII
由于美国日常使用中只有字母和数字,还有一些控制字符。一个字节8位,8位可以表示256种字符。因此用一个字节就可以很好满足美国使用要求。
Bin(二进制) Oct(八进制) Dec(十进制) Hex(十六进制) 缩写/字符 解释00000000 0 0 00 NUL(null) 空字符00000001 1 1 01 SOH(start of headline) 标题开始00000010 2 2 02 STX (start of text) 正文开始00110000 60 48 30 0 数字000110001 61 49 31 1 数字100110010 62 50 32 2 数字201000001 101 65 41 A 大写字母A 01000010 102 66 42 B 大写字母B01000011 103 67 43 C 大写字母C
根据上面的表格就能很好的将文字与二进制码对应起来,方便计算机存储。
二、gb2312和GBK
现在美国文字可以很好表达,但是其他国家就不同意了,每个国家都有不同的文字。而我中国同样有着博大精深汉字。为了满足汉字需求,gb2312应运而生。
由于一个字节已经无法满足数量的要求了。所以采用两个字节来表示汉字。第一个字节称为“高位字节”(也称“区字节)”,第二个字节称为“低位字节”(也称“位字节”)。区位码=区字节+位字节。例如“啊”字在大多数程序中,会以两个字节,0xB0(第一个字节) 0xA1(第二个字节)储存。
虽然基本上gb2312已经能够覆盖99%的汉字,但是gb2312无法处理一些特殊文字,比如古文字。进一步有了GBK编码被设计出来。几乎涵盖了所有汉字。
需注意gb2312和GBK都是兼容ascii编码的。也就是说gbk包含了ascii中的字符映射。
中文还有个GB18030能够容纳更多文字。
三、Unicode
每个国家都可以自己制定一套编码自己使用,比如我们中国使用gbk,但是你怎么和别人交流呢?别人可不管你使用的是gbk。这时候就需要一个统一组织将所有的文字都能够编码,要让所有国家都能认可。
Unicode又称统一码、万国码。在表示一个Unicode的字符时,通常会用“U+”然后紧接着一组十六进制的数字来表示这一个字符。Unicode为了包含所有文字,使用更多位的字节的表示。但是对于有些文字使用多字节是比较浪费的,比如数字1,在ascii编码中明明能够使用一个字节就能够表示,在Unicode中有可能就是多字节表示。大大浪费的存储。
四、utf-8
utf-8是Unicode的一种实现方式。实际情况使用变字节的来表示文字。使用1~4个字节表示一个字符,根据不同的字符而变化字节长度,当字符在ASCII 码的范围时,就用一个字节表示,而一个中文字符占3个字节。
- ascii gbk utf-8 编码问题
- ascii gbk utf-8编码
- 字符串编码问题(Ascii、Unicode、UCS-2、GBK、UTF-8)
- 关于ASCII、GBK、Unicode、UTF-8编码
- Unicode/UTF-8/GBK/ASCII 编码简介
- unicode Ascii gbk字符集和utf-8 utf-16编码
- 编码问题,utf-8、gbk、ascii码,懂了下面的例子,一切就懂了
- ASCII 、GB2312、GBK、GB18030、unicode、UTF-8字符集编码详解
- ASCII 、GB2312、GBK、GB18030、unicode、UTF-8字符集编码介绍
- ASCII 、GB2312、GBK、GB18030、unicode、UTF-8字符集编码详解
- 字符编码ASCII、Unicode、UTF-8、iso8859-1、GBK、GB2312
- Unicode、GBK、UTF-8、ASCII的编码简介
- ASCII 、GB2312、GBK、GB18030、unicode、UTF-8字符集编码详解
- ASCII 、GB2312、GBK、GB18030、unicode、UTF-8字符集编码详解
- ASCII、GB2312、GBK、unicode、UTF-8编码范围
- ASCII 、GB2312、GBK、GB18030、unicode、UTF-8编码认识
- ASCII 、GB2312、GBK、GB18030、unicode、UTF-8字符集编码详解
- 字符集编码:ASCII 、GB2312、GBK、GB18030、UTF-8、unicode
- 搭建Spark开发环境的几种方式及入门示例
- 图论知识总结
- PHPStorm更改为Apache服务端口,及修改默认的网站目录为PHPStorm的工作目录
- 就是乘法【NOIP2016提高A组模拟9.24】
- js延时提示框
- ascii gbk utf-8 编码问题
- Vim中自动加载cscope.out
- 数组去重
- [刷题]ACM/ICPC 2016北京赛站网络赛 第1题 第3题
- Java之File类
- UITextfield
- Eclipse ADT 使用过程中的错误详解
- Android微信支付爬坑【转】
- Android Studio实用快捷键汇总