浅谈ASCII 、ISO8859-1、GB2312、GBK、Unicode、UTF-8 的区别。

  首先,先科普一下什么是字符编码。字符是指一种语言中使用的基本实体,比如英文中的26个英文字母,标点符号,以及中文中的一个个汉字,都可以算做一个字符。而字符编码旨在将这些字符正确录入计算机中,转换成0101形式的计算机识别码,严格意义来讲字符编码其实是一种规范。遵守这种规范的录入编码,会在编码解码中获取正确的表示,不会出现乱码。
  ASCII:计算机发明自美国,自然最初的字符编码规范是以英文为基础的。录入英文字符编码标准:ASCII(American Stardard Code for Information InterChange 美国信息互换标准代码),单字节编码,使用单字节8位 前127个存储英文字母及标点符号。
  ISO8859-1:iso组织在ASCII基础上做的扩展,也是单字节编码。
  GB2313:随着发展,各国都需要使用各国的语言使用计算机,相应的,我国大陆地区采用双字节 高低位字节的方式,存储简体中文。当存储中文字符时,高低位都存放大于127的数字,当读取高位字节时,若大于127,则认为是中文字符,将读取双字节进行识别,若小于127,则认为是英文字符,单字节识别。另外,GB2313在大于127位的编码库也提供了中文符号的编码,故英文标点符号称做半角符号,中文标点符号称作全角符号。
  GBK:对GB2313的拓展,双字节编码,区别是当存储中文字符时,高位存放大于127的数字,低位不再是大于127的数字,将127之前的数字也囊括了。GBK将繁体中文也囊括进来。
  Unicode:针对各个国家都使用不同的编码机制,iso组织又站了出来,对全球编码做了整个的囊括,推出了Unicode。Unicode,双字节编码,对ASCII采取高位补零的方式拓展。
  UTF-8:由于Unicode是一组编码映射,即一个字符映射一个16进制数字的形式。随着互联网发展,为了节省资源(无论是硬盘存储还是流量),相应的对Unicode进行了不同的实现,这就是utf-8。UTF-8的编码规则及详细的映射Unicode详见另一篇文章:  Unicode 和 UTF-8 有何区别 :https://blog.csdn.net/u013314786/article/details/50979627
  最后,严格意义来讲,编码之间无法转码,只有使用正确的编码规范才能不出现乱码的问题。统一编码规范,开发时文件创建、代码使用什么编码,并标识文件编码格式,访问时根据不同的编码格式,使用对应编码才是王道。遇到编码问题,从应用程序代码编码设置、jsp页面编码设置、应用部署服务器编码设置、应用部署环境系统编码设置、浏览器编码设置等这些方面入手,查找是哪一环节的编码设置错误。

浅谈ASCII 、ISO8859-1、GB2312、GBK、Unicode、UTF-8 的区别。的更多相关文章

  1. BIG5, GB(GB2312, GBK, ...), Unicode编码, UTF8, WideChar, MultiByte, Char说明与区别

    汉语unicode编译方式,BIG5是繁体规范,GB是简体规范 GB是大陆使用的国标码,BIG5码,又叫大五码,是台湾使用的繁体码. BIG5编码, GB编码(GB2312, GBK, ...), U ...

  2. AJPFX解析关于编码ansi、GB2312、unicode与utf-8的区别

    大家平时遇到乱码问题是否有自己的一套解决方案?这篇文章就是介绍一下常用的编码方式关于编码ansi.GB2312.unicode与utf-8的区别 先做一个小小的试验: 在一个文件夹里,把一个txt文本 ...

  3. 浅谈HTTP中GET、POST用法以及它们的区别

    浅谈HTTP中GET.POST用法以及它们的区别 HTTP定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE.URL全称是资源描述符.我们可以这样认为: 一 ...

  4. 浅谈JS中的!=、== 、!==、===的用法和区别 JS中Null与Undefined的区别 读取XML文件 获取路径的方式 C#中Cookie,Session,Application的用法与区别? c#反射 抽象工厂

    浅谈JS中的!=.== .!==.===的用法和区别   var num = 1;     var str = '1';     var test = 1;     test == num  //tr ...

  5. Java基础学习总结(29)——浅谈Java中的Set、List、Map的区别

    就学习经验,浅谈Java中的Set,List,Map的区别,对JAVA的集合的理解是想对于数组: 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),JAVA集合可以存储和操 ...

  6. ASCII,GB2312,GBK,Unicode,Utf-8

    1.ASCII:American Stardand Code for Information Interchange,是当时美国制定出来的一套编码系统,使用7位或8位二进制来表示西文字符,0-31以及 ...

  7. 浅谈 ASCII、Unicode、UTF-8,一目了然

    对于ASCII.Unicode.UTF-8这三种编码方式我们经常用到,也经常挂到嘴边,但他们是怎么来的,为什么要存在,具体是怎么个规则,我们并没有做深入了解,下面,就带你看一下他们到底是怎么回事吧…… ...

  8. 字符编解码的故事 字符集 GBK GB2312 GB18030 Unicode 的由来和区别

    本文为转载. 很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物.他们认为8个开关状态作为原子单位很好,于是他们把这称为"字节". 再后来 ...

  9. 了解ASCII、gb系列、Unicode、UTF-8的区别

    转自:http://www.douban.com/note/334994123/?type=rec ● 为什么有这么多编码? ● UTF-8和GB2312有什么区别? ● 我们在国内做网站是用UTF- ...

随机推荐

  1. 嵊州普及Day5T4

    题意:两个1,每次可将一个*k,一个*K2,n个问题,问能否达成x,y? 思路:只有将x,y相乘为3次方时,才可能.并且相乘的三次方一定要是x,y的因子. 下面证明:3次方易证,因为对每个k,都会乘三 ...

  2. Wpa_supplicant 调试故障原因分析

    背景 在使用Wpa_supplicant 工具调试Linux的wifi的时候,发现有一些问题.特此记录一下.有些问题是遇到的并已经有了解决方法,一些问题比较发杂,只能作为思路. 问题以及解决办法 1. ...

  3. Ubuntu操作系统编译安装zabbix报错汇总

    Ubuntu操作系统编译安装zabbix报错汇总 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.报错提示:"configure: error: MySQL libra ...

  4. 51nod 1378:夹克老爷的愤怒 很好玩的一道树状dp

    1378 夹克老爷的愤怒 基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题  收藏  取消关注 夹克老爷逢三抽一之后,由于采用了新师爷的策略,乡民们叫苦不堪,开始组织 ...

  5. Fiddler抓取HTTP请求。

    参考链接:http://blog.csdn.net/ohmygirl/article/details/17849983/ http://www.cnblogs.com/kingwolf_JavaScr ...

  6. mysql导入导出无权限

    error:The MySQL server is running with the --secure-file-priv option so it cannot execute this state ...

  7. Java连载79-Calendar解析

    一. Calendar解析 package com.bjpowernode.java_learning; import java.util.Date; import java.text.ParseEx ...

  8. JS: 图片轮播模板——左右移动,点击编码移动,自动轮播

    <!DOCTYPE html><html> <head>  <meta charset="UTF-8">  <title> ...

  9. 前端 移动端H5页面 DEBUG

    下载网址:https://github.com/Tencent/vConsole 把这个JS复制到项目里面 然后引入到HTML中 然后在JS上面实例化一下即可 页面就会有一个绿色的,然后点击一下就可以 ...

  10. SQLmap自动注入工具命令(10.28 10.29 第二十八 二十九天)

    SQL注入工具:明小子  啊D   萝卜头   sqlmap  等等 SQLMAP:开源的自动化诸如利用工具,支持的数据库有12中,在/plugins中可以看到支持的数据库种类,在所有注入利用工具中他 ...