------- android培训、java培训、期待与您交流! ----------

计算机编码基础知识
一、基础知识
1、为什么要编码
大家都知道,计算机存储数据都是以0、1进行数据的存储,而人类的语言则多种多样,要想让计算机能够理解众多的人类语言,就必须将人类语言“翻译”成计算机能够看懂的语言,这就是为什么要进行编码。编码的目的就是为了让计算机能够理解人类的语言。
2、编码格式和编码表
通俗的讲编码格式就是“翻译”的规则,人类语言与计算机语言的对应规则。由于人类语言众多,编码格式的种类相应的也有多种。编码格式的具体体现就是编码表
3、为什么会出现乱码问题
常见的乱码问题就是因为没有使用正确的编码格式进行信息的转换,导致获得的信息看不懂。解决乱码问题:用什么编码格式编码,就用什么编码格式解码。比如“中国”是用Unicode编码的,那么必须用Unicode解码才不会乱码。也就是说,我们必须首先了解呈现在我们面前的字符是用什么编码格式。
二、常用的编码表
1、ASCII码:美国标准信息交换码
ASCII由128个字符组成,包括大小写字母、数字0-9、标点符号、非打印字符(换行符、制表符等4个)以及控制字符(退格、响铃等)组成。用一个字节(8位)的低 7 位表示,0-31 是控制字符如换行回车,127删除等;32-126 是打印字符,可以通过键盘输入并且能够显示出来。 例如'A'是65,'a'是97。
比如:
就是说:0100 0001 在ASCII编码规则下表示为A
二进制 十进制 十六进制 图形(字符)
0100 0001 65 41 A
0110 0001 97 61 a
2、ISO-8859-1
128个字符显然是不够用的,于是 ISO 组织在 ASCII编码基础上又制定了一系列标准用来扩展 ASCII 编码,它们是 ISO-8859-1~ISO-8859-15,其中 ISO-8859-1 涵盖了大多数西欧语言字符,所有应用的最广泛。ISO-8859-1 仍然是单字节编码,它总共能表示 256个字符。
3、GB2312
全称是《信息交换用汉字编码字符集基本集》,它是双字节编码(16位,转换为16进制是4个字符),总的编码范围是 A1-F7,其中从 A1-A9 是符号区,总共包含 682个符号,从 B0-F7 是汉字区,包含 6763个汉字:其中一级汉字3755个,二级汉字3008个。同时,GB2312收录了包括拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母在内的682个全角字符。GB2312基本满足了汉字的计算机处理需要,它所收录的汉字已经覆盖中国大陆99.75%的使用频率。
比如:
二进制 十进制 十六进制 图形(字符)
1011 1001 1111 1010 47610 B9FA 国
1010 0001 1010 0100 41380 A1A4 .
4、GBK
GBK是汉字编码标准之一,全称《汉字内码扩展规范》(GBK即“国标”、“扩展”汉语拼音的第一个字母,英文名称:Chinese Internal Code Specification)。GBK编码,是在GB2312-80标准基础上的内码扩展规范,使用了双字节编码方案,其编码范围从8140至FEFE(剔除xx7F),共23940个码位,共收录了21003个汉字,完全兼容GB2312-80标准,支持国际标准ISO/IEC10646-1和国家标准GB13000-1中的全部中日韩汉字,并包含了BIG5编码中的所有汉字。GBK 向下与 GB 2312 编码兼容,向上支持 ISO 10646.1 国际标准,是前者向后者过渡过程中的一个承上启下的标准。
5、Unicode
Unicode(Universal Code 统一码)是基于通用字符集(Universal Character Set)的标准来发展, Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。UNICODE支持欧洲、非洲、中东、亚洲(包括统一标准的东亚象形汉字和韩国象形文字)。但是,UNICODE并没有提供对诸如Braille, Cherokee, Ethiopic, Khmer, Mongolian, Hmong, Tai Lu, Tai Mau文字的支持。事实证明,对可以用ASCII表示的字符使用UNICODE并不高效,因为UNICODE比ASCII占用大一倍的空间,而对ASCII来说高字节的0对他毫无用处。为了解决这个问题,就出现了一些中间格式的字符集,他们被称为通用转换格式,即UTF(Universal Transformation Format)Unicode编码规范中常用的是utf-16和utf-8。
6、UTF-16
UTF-16 用两个字节来表示 Unicode 转化格式,这个是定长的表示方法,不论什么字符都可以用两个字节表示,两个字节是 16个bit,所以叫 UTF-16。UTF-16 表示字符非常方便,每两个字节表示一个字符,这个在字符串操作时就大大简化了操作,这也是 Java 以 UTF-16 作为内存的字符存储格式的一个很重要的原因。
UTF-16 统一采用两个字节表示一个字符,虽然在表示上非常简单方便,但是也有其缺点,有很大一部分字符用一个字节就可以表示的现在要两个字节表示,存储空间放大了一倍,在现在的网络带宽还非常有限的今天,这样会增大网络传输的流量,而且也没必要。
6、UTF-8
UTF-8 采用了一种变长技术,每个编码区域有不同的字码长度。UTF-8用1到6个字节编码UNICODE字符。如果UNICODE字符由2个字节表示,则编码成UTF-8很可能需要3个字节。而如果UNICODE字符由4个字节表示,则编码成UTF-8可能需要6个字节。用4个或6个字节去编码一个UNICODE字符可能太多了,但很少会遇到那样的UNICODE字符。UTF-8 可以在同一个页面显示中文简体繁体及其它语言(如日文,韩文)。实际表示ASCII字符的UNICODE字符,将会编码成1个字节,并且UTF-8表示与ASCII字符表示是一样的。所有其他的UNICODE字符转化成UTF-8将需要至少2个字节。
7、ANSI
不同的国家和地区制定了不同的标准,由此产生了 GB2312, BIG5, JIS 等各自的编码标准。这些使用 2个字节来代表一个字符的各种汉字延伸编码方式,称为 ANSI 编码。在简体中文系统下,ANSI 编码代表 GB2312编码,在日文操作系统下,ANSI 编码代表 JIS 编码。
三、eclipse编码问题
1、工作空间的编码方式
Window->Preferences->General->Workspace->Text file Encoding
2、单个工程的编码方式
右击工程,在弹出的菜单中选择”Properties”
3、修改一类文件的编码方式
Window->General->Content Types
4、修改单个文件的编码方式
右击要修改的文件,在弹出的菜单中选择“Properties”

黑马程序员_计算机编码技术相关推荐

  1. 黑马程序员_毕向东_Java基础视频教程_Java基础学习知识点总结

    黑马程序员_毕向东_Java基础视频教程 Java基础学习知识点总结 2016年01月06日  day01 一.基础知识:软件开发 1.什么是软件?软件:一系列按照特定顺序组织的计算机数据和指令的集合 ...

  2. 黑马程序员_石头迷阵小游戏

    黑马程序员_石头迷阵小游戏 源代码 一些说明: 1)这些是我看b站黑马程序员的视频,自己手打的,想分享一下,如果有侵权啥的请联系我,马上删除 2)一些比较重要的我都有给注释 3)工具idea idk版 ...

  3. 黑马程序员_异常(老毕视频总结及《疯狂java》补充)

    ----------------------<ahref="http://edu.csdn.net"target="blank">ASP.Net+A ...

  4. 解析python网络爬虫pdf 黑马程序员_正版 解析Python网络爬虫 核心技术 Scrapy框架 分布式爬虫 黑马程序员 Python应用编程丛书 中国铁道出版社...

    商品参数 书名:Python应用编程丛书:解析Python网络爬虫:核心技术.Scrapy框架.分布式爬虫 定价:52.00元 作者:[中国]黑马程序员 出版社:中国铁道出版社 出版日期:2018-0 ...

  5. 黑马程序员_基础测试

    -------android培训.java培训.期待与您交流! ---------- 黑马程序员训练营基础测试题及个人代码(包含思路.步骤和基本注释) 1. 编写程序计算12+22+32+....+1 ...

  6. 黑马程序员_集合总篇_基础之重点

    ------- <a href="http://www.itheima.com" target="blank">android培训</a> ...

  7. 黑马程序员_面向对象

    java是面向对象的编程,下面我想通过自己对java的学习,来谈谈对面向对象的理解.      给大家说一个非常熟悉的例子:老张开车去东北.用面向对象的方式考虑这个问题:车,找个司机,然后告诉司机我要 ...

  8. 黑马程序员_银行调度系统学习总结

    ----------- android培训.java培训.java学习型技术博客.期待与您交流! ------------ 银行业务调度系统: 模拟实现银行业务调度系统逻辑,具体需求如下: ·银行内有 ...

  9. 黑马程序员_面向对象03

    ------- android培训.java培训.期待与您交流! ---------- 现在我们来看看面向对象的继承. 继承是从已有的类中派生出新的类新的类能吸收已有类的数据属性和行为,并能扩展新的能 ...

  10. 黑马程序员_音乐(视频)播放器学习

    ---------------------- ASP.Net+Unity开发..Net培训.期待与您交流! ---------------------- 1.本节主要学习了音乐播放器的简单制作,在此篇 ...

最新文章

  1. 宇宙条一面:十道经典面试题解析
  2. php 插入2个数组,用PHP将2个数组插入mysql
  3. /usr/bin/ld 搜索路径顺序
  4. 华为云部署html网页,手把手教你如何在华为云服务器上部署一个自己的弹幕网站!...
  5. 机器学习-k均值聚类算法-k_means原理14
  6. [BZOJ 3173] [TJOI 2013] 最长上升子序列(splay)
  7. 高流量站点NGINX与PHP-fpm配置优化
  8. 深度学习-吴恩达-笔记-6-优化算法
  9. 视觉平台搭建——LED光源介绍
  10. 传统emmc所用的sdio接口_MMC/SD/SDIO介绍
  11. 计算机英语感想1500,英语教学的心得体会1500字
  12. python自动化运维脚本(仅供参考)
  13. 简单实现点击图片放大的功能
  14. python For 循环 三种遍历方式
  15. 小尝试:基于指标体系的数据仓库搭建和数据可视化
  16. 老兵新传:Visual Basic核心编程及通用模块开发 pdf电子书
  17. xadmin报cannot import name ‘DEFAULT_FORMATS‘ from ‘import_export.admin‘/cannot import name ‘SKIP_ADMI
  18. Android中的图片加载
  19. PCL 点云DBSCAN聚类算法
  20. 计算机数字小,直观:打开和关闭笔记本计算机的数字小键盘

热门文章

  1. Unity同时接入微信和支付宝支付 Android篇(aar包和jar包)
  2. 【Ubuntu】Ubuntu18.04无法识别移动硬盘、U盘解决方法
  3. 请不要再轻视Git —— 我在工作中是如何使用 Git 的
  4. 从月薪3500到700万——一个大学生的成长经历
  5. es6 javascript 尾调用
  6. 付费资源不能上传了?!
  7. @vue/composition-api/dist/vue-composition-api.mjs in ./node_modules/vue-demi/lib/index.mjs 报错
  8. aspose导出word转pdf并加水印
  9. php获取七牛上传token失效,上传文件到七牛时,bad token了怎么处理?
  10. nginx启动流程之work初始化