------- 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”
分享到:
相关推荐
黑马程序员_毕向东_Java基础视频教程第18天-14-IO流(拷贝文本文件图例).zip
黑马程序员__移动商城项目实战 包括黑马程序员乐淘商城实战和慕课React+Antd
《黑马程序员_hibernate框架开发2016版讲义...通过对黑马程序员提供的这门课程的学习,开发者不仅能掌握Hibernate的核心概念和技术,还能提升在实际项目中的数据库操作效率,为构建高效、稳定的Java应用打下坚实基础。
马程序员_黎活明__Spring如何装配各种集合类型的属性.ppt )
《Hibernate框架深度解析——基于黑马程序员2016版教学资料》 Hibernate,作为一个强大的对象关系映射(ORM)框架,极大地简化了Java开发者在数据库操作中的工作。它通过提供数据持久化的对象模型,使得开发者可以...
黑马程序员_iOS基础视频_最适合初学者入门video,百度云链接。
黑马程序员_android实例教程,网上找的的安卓教材,真心不错。
传智播客_javaWEB讲义和笔记资料_day09 黑马程序员_javaWEB教程讲义和笔记资料_day09
黑马程序员_JDBC视频教程,仅供参考学习,有需要的可以下载,本人有全栈开发工程师各种学习技术视频教程及本档,有需要的可以留言或到本人账号下载
【标题】"Pinyougou_html_css_黑马程序员_" 指的是一个关于HTML和CSS的实战项目,这个项目可能是由“黑马程序员”这个知名的在线教育平台提供的。"品优购"可能是该项目的一个虚构的电商网站名称,目的是为了让学生...
黑马程序员_2小时教你写一个android程序[第06天]课件源码
黑马程序员_毕向东_Java基础视频教程第18天-09-IO流(文件的续写)
在"黑马程序员_javaWEB讲义和笔记资料_day08"中,我们可以预见到这一天的学习内容将深入到Java Web开发的核心概念和技术。"传智播客"作为知名的技术教育机构,其课程通常涵盖全面且深入的IT知识,因此这些讲义和笔记...
黑马程序员_张孝祥_Java多线程与并发库,老师讲的非常仔细,老师很有耐心.欢迎大家下载学习.
### 黑马程序员_超全面的JavaWeb教程-视频+源码笔记 #### JavaWeb基础知识概览 在深入了解本教程之前,我们先来简要回顾一下JavaWeb的基础知识。JavaWeb是利用Java语言开发Web应用的技术集合。它主要包括Servlet、...
黑马程序员_2小时教你写一个android程序[第08天]课件源码 Android软件安全和逆向分析 案例:破解小软件案例与保护自己的android程序
"黑马程序员_(适合初学者入门的Java基础视频)"是一套专为初学者设计的Java基础教学课程,旨在帮助零基础的学习者逐步掌握Java编程的基本概念和技能。 该视频教程涵盖了Java的基础知识,包括: 1. **环境搭建**:...
黑马程序员_ibatis视频教程,仅供参考学习,有需要的可以下载,本人有全栈开发工程师各种学习技术视频教程及本档,有需要的可以留言或到本人账号下载
安卓开发视频教程,文档内含有下载链接。 黑马程序员_精通android4.0开发视频(工124集)
黑马程序员是一家知名的IT教育机构,他们提供的Javaweb教材源码是为了帮助学员深入理解和实践Web开发技术。下面将详细介绍JavaWeb的基本概念、核心技术和黑马程序员源码在学习过程中的作用。 1. **JavaWeb基础** ...