一、ASII

美国(国家)信息交换标准(代)码。

计算机中只有数字,一切都是用数字表示,屏幕上显示的一个一个的字符也不例外。

一个字节可表示的数字为0-255,足以显示键盘上的所有的字符 例如. a 为97 b为 98。这种数字与字符对应的编码规则,称为Asc11  码,ASC11 码的最高bit位都是0,也就是说,ASC11码的值都在0-127之间。

二、GB2312和GBK(中国的本地字符集)

中国大陆将每个中文字符都用2个字节表示,中文字符第个字节最高bit位都是1。这种编码格式称为 (gb2312) 国标码 那么gb2312码对应的数字都是负数。

在此gb2312基础上,又增了一些,比如繁体字 ,称为GBK

附:

GB18030编码是在GBK编码基础上的扩充,因为汉字更多,仅仅使用两位编码已经不能容纳要求的汉字,所以采用了2\4位混和的办法,可以支持更多的汉字编码。

三、ANSI

为了扩充ASCII编码,以用于显示本国的语言,不同的国家和地区制定了不同的标准,由此产生了 GB2312, BIG5, JIS等各自的编码标准。这些使用 2 个字节来代表一个字符的各种汉字延伸编码方式,称为 ANSI 编码,又称为"MBCS(Muilti-Bytes Charecter Set,多字节字符集)"。在简体中文系统下,ANSI 编码代表 GB2312 编码,在日文操作系统下,ANSI 编码代表 JIS 编码,所以在中文 windows下要转码成gb2312,gbk只需要把文本保存为ANSI 编码即可。 不同 ANSI 编码之间互不兼容。

四、本地字符集

在中国大陆使用的计算机系统上, GBK和GB2312就被称为该系统的本地字符集。

"中国 " 的中字,在中国大陆的编码是16进制的D6D0,在台湾是 A4A4 台湾的编码称为BIG5 大五码。在一个国家的本地化系统中出现的一个字符,通过电子邮件传到另外一个国家的本地化系统中,看到的就不是那个原始字符了,而是另外一个国家的字符或乱码。

五、Unicode编码

ISO 组织将全世界的符号进行了统一,称之为Unicode编码。

“中”这个符号,在全世界都是16进制的 4e2d。如果所有的计算机都使用Unicode编码,则"中"这个字,在全世界上的计算机上都能显示为"中",Unicode 编码的字符占用两个字节大小,对于AC11 码所表示的字符,只是简单地在AS11码原来占用的一个字节的前面,增中一个所有bits为0的字节, 它表示的字符的个数不会超过65535 ,实际上,它还保留了2000多个数值没有用于编码。

unicode 一统天下的局面还没有形成,在相当长时间内,本地化字符编码将与Unicode编码共存

java中的字符使用的都是Unicode编码。

java在通过Unicode保证跨平台的特性前提下,也支持本地平台字符集。

六、UTF-8

在java语言和其他程序的开发过程中.特别是XML 还涉及到UTF-8 UTF-16。广义上的unicode也包含 UTF8 和utf-16

UTF-8

--ASC11码字符保持原样,伋然只占用一个字节。

--对于其他国家的字符,UTF-8 使用2个或三个字节来表示。

--使用utf-8 编码的文件,通常都要用  EF BB BF 作为文件开头的三个字节数据。

七、UTF-8和unicode编码之间的转换规则

-- 0001-007f  (一个字节)

0xxxxxx

-- 0000或其泛围在  0080 到  07ff之间的字符,

110xxxxx  10xxxxxx (11个有效bit位) (0080-07ff之间)一个unicode有16位,实际上只有11个有效位,其余都是标志。

-- 0800 到 ffff 之间的字符,1110xxxx  10xxxxxx 10xxxxxx  (16比特有效位),软件很容易根据UTF-8 编码中那些固定不变的bit值,来确定一个字符占用的是一个字节,还是两个字节,还是三个字节。

八、UTF-8的优点

-- 不出现ox00  (在c语言中,\0 代表符串的结束结束标志,说明已经到了字符串的末尾)unicode 中  对于ACS11 字符,它都要占用两个字节,增加一个内容为空(0x00)的字节,浪费,而且这个字节,在C语言和其他程序有中特殊的应用。

-- 便于应用程序检查数据在传输中是否发生了错误 它可以检查出数据传输过程中是否出现了错误 。

-- 直接处理使用ASC11的文档

九、联通,联想和联

在记事本中输入联通 联想,联,查看.分别会看到一些错误情况

联通 (或联系) 出现乱码


    
用ue打开,查看一下16进制,分别是C1AA  CDA8 C1AA CFE8   //这些都是用的GB2312编码 如果是中,则是D6D0,也就是  C1AA 是联  CDA8 是通CFE8是想。可以用以下方式得到它产的二进制表示:

int x=0xCDA8;
System.out.println(Integer.toBinaryString(x) );

//11000001   10101010  联    11001101  10101000  通

记事本中的文件,默认是按中文字符集GB2312来存诸的,所以"联"字就被解析成了 1100 0001  1010 1010 ,通字就被存成了 1100 1101  1010 1000, 打开记事本文档的时候,这些二进制形式,恰好都都对应上了 UTF-8 的规则,所以系统就认为这是一个UTF-8 编码的文件 就按UTF-8来解释,出现了乱码,解决的方法:保存的时候,直接按utf-8 保存就不会出现了。

十、用程序查看字符的编码

查看中文字符的GB2312 码

查看中文字符的UTF-8 码

查看中文字符的Unicode 码

public static void main(String[] args) throws UnsupportedEncodingException {
String str="中国"; //查看字符的unicode码,将一个字符转成整数,得到的就是unicode值
/* for(int i=0;i<str.length();i++){
int unicodeCode=str.charAt(i);
System.out.println(unicodeCode); // 20013,22269 System.out.println(Integer.toHexString(unicodeCode)); //对应的16进制 4e2d,56fd
}*/ //查看字符的gb2312码
byte [] buff =str.getBytes("gb2312"); for(int i=0;i<buff.length;i++){
System.out.println(buff[i]); // -42,-48, -71,-6
System.out.println(Integer.toHexString(buff[i])); //ffffffd6 ,ffffffd0 ffffffb9,fffffffa
}
}

 附: 域名解析

域名解析是把域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站一种服务。

IP地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址。

域名解析就是域名到IP地址的转换过程。域名的解析工作由DNS服务器完成。

域名解析也叫域名指向、服务器设置、域名配置以及反向IP登记等等。说得简单点就是将好记的域名解析成IP,域名解析需要由专门的域名解析服务器(DNS)来完成。,是把域名解析到一个IP地址,然后在此IP地址的主机上将一个子目录与域名绑定。一个域名对应一个IP地址,一个IP地址可以对应多个域名;所以多个域名可以同时被解析到一个IP地址。就要进行解析,首先在域名注册商那里通过专门的DNS服务器解析到一个WEB服务器的一个固定IP上:211.214.1.***,然后,通过WEB服务器来接收这个域名,把***.com这个域名映射到这台服务器上。那么,输入***.com这个域名就可以实现访问网站内容了.即实现了域名解析的全过程;

hosts文件是Windows系统中一个负责IP地址与域名快递解析的文件,以ASCLL格式保存。

计算机在键入域名(比如www.baidu.com)的时候,首先会去看看hosts文件汇总有没有关于此域名IP地址的记录。如果有,就直接登陆该网站;如果没有再查询DNS服务器,在Windows 2000/XP系统中位于C:\Windows\System32\Drivers\Etc目录中。该文件其实是一个纯文本的文件,用普通的文本编辑软件如记事本等都能打开。 用记事本打开hosts文件,首先看见了微软对这个文件的说明。这个文件是根据TCP/IP for Windows 的标准来工作的,它的作用是包含IP地址和Host name?主机名?的映射关系,是一个映射IP地址和Host name?主机名?的规定,规定要求每段只能包括一个映射关系,IP地址要放在每段的最前面,空格后再写上映射的Host name?主机名?。 现在有很多网站不经过用户同意就将各种各样的插件安装到你的计算机中,有些说不定就是木马或病毒。对于这些网站我们可以利用Hosts把该网站的域名映射到错误的IP或自己计算机的IP,这样就不用访问了。比如不想访问http://www.163.com,那我们在Hosts写上以下内容: 127.0.0.1 http://www.baidu.com#屏蔽的网站 0.0.0.0 http://www.baidu.com#屏蔽的网站.这样计算机解析域名就解析到本机或错误的IP,达到了屏蔽的目的。

host 文件的位置 win7 和 2003 相同

C:\Windows\system32\drivers\etc\hosts

Java基础——字符编码的更多相关文章

  1. Python基础-字符编码与转码

    ***了解计算机的底层原理*** Python全栈开发之Python基础-字符编码与转码 需知: 1.在python2默认编码是ASCII, python3里默认是utf-8 2.unicode 分为 ...

  2. java基础---->java中字符编码问题(一)

    这里面对java中的字符编码做一个总结,毕竟在项目中会经常遇到这个问题.爱不爱都可以,我怎样都依你,连借口我都帮你寻. 文件的编码格式 一.关于中文的二进制字节问题 public static Str ...

  3. JAVA的字符编码及问题

    web开发时,字符编码及有时候也会是一个麻烦的问题,没有经验的话,肯定不知道怎么解决,有一定的经验的话,那还是比较简单的.以下,是我学习过程中总结出来的几种字符编码级问题和其解决的方法 1.文档乱码, ...

  4. Python基础(字符编码与文件处理)

    一.了解字符编码的知识储备 1.计算机基础知识(三副图) 2.文本编辑器存取文件的原理(notepad++,Pycharm,word) 打开编辑器就启动了一个进程,是在内存中运行的,所以在编辑器写的内 ...

  5. Java之字符编码和字符集

    什么是字符编码 计算机中储存的信息都是用二进制数表示的,而我们在屏幕上看到的数字.英文.标点符号.汉字等字符是二进制数转换之后的结果.按照某种规则,将字符存储到计算机中,称为编码 .反之,将存储在计算 ...

  6. JAVA支持字符编码读取文件

    文件操作,在java中很常用,对于存在特定编码的文件,则需要根据字符编码进行读取,要不容易出现乱码 /** * 读取文件 * @param filePath 文件路径 */ public static ...

  7. python基础-----字符编码

    1.ASCII ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现 ...

  8. 第2章 Python基础-字符编码&数据类型 字符编码&字符串 练习题

    1.简述位.字节的关系 位(bit)是计算机中最小的表示单元,数据传输是以“位”为单位的,1bit缩写为1b 字节(Byte)是计算机中最小的存储单位,1Byte缩写为1B 8bit = 1Byte ...

  9. Python入门基础--字符编码与文件处理

    字符编码 文本编辑器存取文件的原理 #1.打开编辑器就打开了启动了一个进程,是在内存中的,所以,用编辑器编写的内容也都是存放与内存中的,断电后数据丢失 #2.要想永久保存,需要点击保存按钮:编辑器把内 ...

随机推荐

  1. ASP.NET Web API 中使用 swagger 来管理 API 文档

    本文以 ASP.NET Web API 为后台框架,利用 EF6 连接 postgreSQL 数据库,使用 swagger 来生成 REST APIs文档.文章分二个部分,第一部分主要讲如何用 EF6 ...

  2. WPF放大镜效果

    在做WPF项目中,不止两个项目需要有放大镜功能. 第一个项目是一个手术室的远程示教系统,主要是为了方便专家演示病症时,可以放大图片上的某些部位. 第二个项目是一个工厂的MES项目,其中有个功能是质量预 ...

  3. ovs-appctl 命令合集

    通用命令 exit 优雅关闭ovs-vswitchd进程 qos/show interface 查询内核中关于qos的配置以及和给出端口有关的状态 cfm/show [interface]显示在指定端 ...

  4. Select count(*)、Count(1)、Count(0)的区别和执行效率比较

    记得很早以前就有人跟我说过,在使用count的时候要用count(1)而不要用count(*),因为使用count(*)的时候会对所有的列进行扫描,相比而言count(1)不用扫描所有列,所以coun ...

  5. nyoj 1274信道安全 第九届河南省赛(SPFA)

    信道安全 时间限制:1000 ms  |  内存限制:65535 KB 难度:2   描述 Alpha 机构有自己的一套网络系统进行信息传送.情报员 A 位于节点 1,他准备将一份情报 发送给位于节点 ...

  6. 01-Python的基础知识3

    - 数字 - 数字常量: - 整型: - 概念: - 指代平常数学上的整数常量.Python中整型指代int类型. - 基本运算: - 可以执行平常的+,-,*,/ ,%以及其他操作 假设a=15,b ...

  7. JS脚本实现CSDN免登陆免关闭广告插件自动展开“阅读更多”内容

    最近在CSDN查资料,总是弹出以下弹窗,然后就自动跳转到登录页面,蛋疼! 于是重新捣腾了一下,修改了原来的脚本,最新的脚本代码如下: 温馨提示:在打开CSDN页面后立刻执行以下脚本即可免登陆免关闭广告 ...

  8. Failed to start docker.service: Unit not found.

    安装教程参考: https://docs.docker.com/install/linux/docker-ce/centos/#install-docker-ce-1 https://yq.aliyu ...

  9. python with用法举例

    我们知道在操作文件对象的时候可以这么写 with open('a.txt') as f: '代码块' 上述叫做上下文管理协议,即with语句,为了让一个对象兼容with语句,必须在这个对象的类中声明_ ...

  10. 安装MySQL-python时报错

    (py27) [root@test SimpletourDevops]# pip install MySQL-python DEPRECATION: Python 2.7 will reach the ...