当前位置: 首页 > news >正文

建站至尊免费做网站公司

建站至尊,免费做网站公司,腾讯邮箱官网,asp 制作网站开发文章目录 字符集的来历汉字和字母的编码特点Unicode字符集字符集小结编码和解码开发约定 字符集的来历 计算机是美国人发明的,由于计算机能够处理的数据只能是0和1组成的二进制数据,为了让计算机能够处理字符,于是美国人就把他们会用到的每一…

文章目录

    • 字符集的来历
    • 汉字和字母的编码特点
    • Unicode字符集
    • 字符集小结
    • 编码和解码
    • 开发约定

字符集的来历

计算机是美国人发明的,由于计算机能够处理的数据只能是0和1组成的二进制数据,为了让计算机能够处理字符,于是美国人就把他们会用到的每一个字符进行了编码(所谓编码,就是为一个字符编一个二进制数据),如下图所示:(图片来自于百度百科,只需要了解常见的英文字母(大小写)、数字等就好了,不需要细究)

在这里插入图片描述
美国人常用的字符有英文字母、标点符号、数字以及一些特殊字符,这些字符一共也不到128个,所以他们用1个字节来存储1字符就够了。 美国人把他们用到的字符和字符对应的编码总结成了一张码表,这张码表叫做ASCII码表(也叫ASCII字符集)。

其实计算机只在美国用是没有问题的,但是计算机慢慢的普及到全世界,当普及到中国的时候,在计算机中想要存储中文,那ASCII字符集就不够用了,因为中文太多了,随便数一数也有几万个字符。

于是中国人为了在计算机中存储中文,也编了一个中国人用的字符集叫做GBK字符集,这里面包含2万多个汉字字符,GBK中一个汉字采用两个字节来存储,为了能够显示英文字母,GBK字符集也兼容了ASCII字符集,在GBK字符集中一个字母还是采用一个字节来存储

汉字和字母的编码特点

如果一个文件中既有中文,也有英文,那计算机怎么知道哪几个字节表示一个汉字,哪几个字节表示一个字母呢?

比如:在文件中存储一个我he你,底层其实存储的是这样的二进制数据。

需要我们注意汉字和字母的编码特点:

    1. 如果是存储字母,采用1个字节来存储,一共8位,其中第1位是0
    2. 如果是存储汉字,采用2个字节来存储,一共16位,其中第1位是1

当读取文件中的字符时,通过识别读取到的第1位是0还是1来判断是字母还是汉字

  • 如果读取到第1位是0,就认为是一个字母,此时往后读1个字节。
  • 如果读取到第1位是1,就认为是一个汉字,此时往后读2个字节。

也即,GBK规定了汉字的第一个字节的第一位必须是1.

Unicode字符集

咱们国家可以用GBK字符集来表示中国人使用的文字,那世界上还有很多其他的国家,他们也有自己的文字,他们也想要自己国家的文字在计算机中处理,于是其他国家也在搞自己的字符集,就这样全世界搞了上百个字符集,而且各个国家的字符集互不兼容。 这样其实很不利于国际化的交流,可能一个文件在我们国家的电脑上打开好好的,但是在其他国家打开就是乱码了。

为了解决各个国家字符集互不兼容的问题,由国际化标准组织牵头,设计了一套全世界通用的字符集,叫做Unicode字符集。在Unicode字符集中包含了世界上所有国家的文字,一个字符采用4个字节才存储。

在Unicode字符集中,采用一个字符4个字节的编码方案,又造成另一个问题:如果是说英语的国家,他们只需要用到26大小写字母,加上一些标点符号就够了,本身一个字节就可以表示完,用4个字节就有点浪费。

于是又对Unicode字符集中的字符进行了重新编码,一共设计了三种编码方案。分别是UTF-32、UTF-16、UTF-8; 其中比较常用的编码方案是UTF-8

UTF-8这种编码方案的特点总结如下:

1.UTF-8是一种可变长的编码方案,共分为4个长度区
2.英文字母、数字占1个字节兼容(ASCII编码)
3.汉字字符占3个字节
4.极少数字符占4个字节

字符集小结

ASCII字符集:《美国信息交换标准代码》,包含英文字母、数字、标点符号、控制字符
特点:1个字符占1个字节

GBK字符集:中国人自己的字符集,兼容ASCII字符集,还包含2万多个汉字
特点:1个字母占用1个字节;1个汉字占用2个字节

Unicode字符集:包含世界上所有国家的文字,有三种编码方案,最常用的是UTF-8
UTF-8编码方案:英文字母、数字占1个字节兼容(ASCII编码)、汉字字符占3个字节

编码和解码

其实String类类中就提供了相应的方法,可以完成编码和解码的操作。

  • 编码:把字符串按照指定的字符集转换为字节数组
  • 解码:把字节数组按照指定的字符集转换为字符串

示例代码如下所示:

/*** 目标:掌握如何使用Java代码完成对字符的编码和解码。*/
public class Test {public static void main(String[] args) throws Exception {// 1、编码String data = "a我b";byte[] bytes = data.getBytes(); // 默认是按照平台字符集(UTF-8)进行编码的。System.out.println(Arrays.toString(bytes));// 按照指定字符集进行编码。byte[] bytes1 = data.getBytes("GBK");System.out.println(Arrays.toString(bytes1));// 2、解码String s1 = new String(bytes); // 按照平台默认编码(UTF-8)解码System.out.println(s1);String s2 = new String(bytes1, "GBK");System.out.println(s2);}
}

开发约定

开发一个项目的时候,最开始的时候,首先要设定的就是代码的编码格式,如果不约定好,后面很容易因为各种编码混用造成乱码。一个项目具体的编码格式一般来说统一就好,要按照实际需求来。例如我曾经实习的时候就约定好了
.java文件使用GBK编码;其他文件都一致使用UTF-8编码。

http://www.yayakq.cn/news/391550/

相关文章:

  • 婚纱网站设计图家装公司取名字大全集
  • 甘肃省水利厅引洮工程建设管理局网站网站主持
  • 企业网站群建设规范网站通常用什么编程做
  • 桃子网站一个小程序开发费用
  • wordpress标签栏自动优化句子的软件
  • 免费手机端网站模板下载安装肇庆seo推广公司
  • 百度手机网站优化六安论坛招聘网最新招聘
  • 做视频比较好的理财网站免费的导航页
  • 哪里找专业做网站的人常熟设计师合作网站
  • 旅游网站制作建设北大青鸟网站建设
  • 做防水怎么注册网站免费网站添加站长统计
  • 鲁棒导航网站程序代码优化
  • 动态ip网站如何备案深圳建网站哪个公
  • 站长之家查询域名大型网站建设开发设计公司
  • 广东华星建设集团网站网推广公司
  • 外卖网站 模板如何在720云网站做全景视频下载
  • 网站seo计划装修设计培训学校
  • 澄迈住宅与建设局网站云南公路建设市场网站
  • 网站的搭建需要多少钱wordpress 发邮件函数
  • 深圳网站建设wordpress 备案号
  • 中山seo关键词北京百度seo公司
  • 合肥市城乡建设局2019网站项目管理流程软件
  • 做网站要多手机网站推广法
  • 做网站换服务器怎么整网站建设方案图
  • 珠海做网站三年多少钱动易网站建设
  • 卖设备用哪个网站wordpress 搭建cms
  • 网站开发开票内容798艺术区
  • 这里是我做的网站痘痘该怎么去除效果好
  • 建设网站花费flash源文件网站
  • 电子商务网站的建设的意义文山市住房和城乡建设局网站