字符编码

字符编码涉及到很多概念如ASCII、ISO-8859-1、Unicode、GBK、GB2312、UTF-8等,涉及到字符的传输(输入和输出)、显示与存储。

  1. ASCII码使用8位二进制数组合来表示256种可能的字符。标准ASCII码(又称基础ASCII码)使用7位二进制数来表示所有的大写和小写字母、数字0到9、标点符号以及在美式英语中使用的特殊控制字符,一共128个。不支持中文。
  2. ISO-8859-1属于单字节编码,最多能表示的字符范围是0-255,应用于英文系统,很明显,ISO-8859-1编码表示的字符范围很窄,无法表示中文字符。
  3. GB2312/GBK是汉字的国际码。专门用来表示汉字,是双字节编码,而英文字母和ISO-8859-1及ASCII一致(兼容)。其中GBK编码能够用来同时表示繁体字和简体字。而GB2312只能表示简体字,GBK是兼容GB2312的。
  4. unicode是最统一的编码,可以用来表示所有语言的字符,而且是定长双字节(也有四字节的)编码,包括英文字母在内。所以可以说他是不兼容ISO-8859编码的。需要说明的是,定长编码便于计算机处理(GBK2312/GBK不是定长编码),而unicode又可以用来表示所有字符、所以在很多软件内部使用unicode编码来处理的,比如java。
  5. UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,也是一种前缀码。它可以用来表示Unicode标准中的任何字符(兼容),且其编码中的第一个字节仍与ASCII兼容,这使得原来处理ASCII字符的软件无须或只须做少部份修改,即可继续使用。因此,它逐渐成为电子邮件、网页及其他存储或发送文字的应用中,优先采用的编码。
造成编码的根本原因:

  1. 程序使用的编码和本机的编码不统一
  2. 在网络中,客户端和服务端编码不统一

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值