1、解码与编码的含义

编码:把看得懂的字符变成看不懂的码值,这个过程就叫编码
    解码:根据码值查到相对应的字符,我们把这个过程就叫解码

注意:编码与解码时,我们一般使用统一的码表,否则非常容易出现乱码

2、常见的码表

1. ASCII:美国标准信息交换码。用一个字节的7位可以表示。
    2. ISO8859-1:拉丁码表。欧洲码表,用一个字节的8位表示。
    3. GB2312:英文占一个字节,中文占两个字节.中国的中文编码表。
    4.GBK:中国的中文编码表升级,融合了更多的中文文字符号。
    5.Unicode:国际标准码规范,融合了多种文字。所有文字都用两个字节来表示,Java语言使用的就是unicode。
    6.UTF-8:最多用三个字节来表示一个字符。
(我们接触最多的是iso8859-1、gbk、utf-8三种编码)

注意:ASCII码用7位表示一个字符,共128个字符,不够256个。 ISO-8859-1码是ASCII码的拓展,用8位表示一个字符,共256个字符。即:ISO8859-1码包含ASCII码

3、实例

 package com.dhb.file;

 import java.io.IOException;
import java.util.Arrays; /**
* @author DSHORE / 2018-7-19
*
*/
public class Demo26 {
public static void main(String[] args) throws IOException {
String str1 = "中国";
byte[] buf1 = str1.getBytes("utf-8");//MyEclipse控台默认的是gbk编码
System.out.println("数组(utf-8):"+Arrays.toString(buf1)); str1 = new String(buf1,"utf-8");
System.out.println(str1);
str1 = new String(buf1,"gbk");
System.out.println(str1);//乱码,因为编码时用utf-8,解码时用gbk String str2 = "a我爱中国";
byte[] buf2 = str2.getBytes("Unicode");//编码与解码的时候指定的码表Unicode实际上就是用utf-16
System.out.println("数组(Unicode):"+Arrays.toString(buf2)); String str3 = "大家好";
byte[] buf3 = str3.getBytes();//默认使用gbk进行编码
//System.out.println(Arrays.toString(buf3));
str3 = new String(buf3,"ISO8859-1");
System.out.println(str3);//乱码,因为编码时用gbk,解码时用ISO8859-1
//出现乱码之后可以还原吗?
byte[] buf4 = str3.getBytes("ISO8859-1");
str3 = new String(buf4,"gbk");
System.out.println(str3);
//出现乱码之后都可以还原吗? 答:不一定能,例如:ASCII码和ISO8859-1码(有一部分不能)。因为ISO8859-1包含ASCII码
}
}

运行结果图

原创作者:DSHORE

作者主页:http://www.cnblogs.com/dshore123/

原文出自:https://www.cnblogs.com/dshore123/p/9340285.html

欢迎转载,转载务必说明出处。(如果本文对您有帮助,可以点击一下右下角的 推荐,或评论,谢谢!

java基础52 编码与解码的更多相关文章

  1. java使用Base64编码和解码的图像文件

    1.编码和解码下面的代码示例看: import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import j ...

  2. Java利用Base64编码和解码图片文件

    1.编码与解码代码如下所示: import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import jav ...

  3. Day5 Pyhton基础之编码与解码(四)

    1.编码与解码 1.1现在常用的编码类型

  4. Java 字符集,编码、解码

    1. 计算机中文件.数据底层都是基于二进制的. 计算机底层并没有文本文件.图片文件之分,它只是记录着每个文件的二进制序列. 字符集:包含着字符和二进制序列之间的对应关系,一个字符对应一个二进制序列. ...

  5. Java基础——字符编码

    一.ASII 美国(国家)信息交换标准(代)码. 计算机中只有数字,一切都是用数字表示,屏幕上显示的一个一个的字符也不例外. 一个字节可表示的数字为0-255,足以显示键盘上的所有的字符 例如. a ...

  6. js与java encodeURI 进行编码与解码

    JS escape()使用转义序列替换某些字符来对字符串进行编码  JavaScript 中国 编码后 JavaScript %u4E2D%u56FD unescape()对使用   encodeUR ...

  7. Java基础(52):ClassCastException详解(转)

    ClassCastException,从字面上看,是类型转换错误,通常是进行强制类型转换时候出的错误.下面对产生ClassCastException异常的原因进行分析,然后给出这种异常的解决方法. 这 ...

  8. java进行url编码和解码

    public static String getURLEncoderString(String str) { String result = ""; if (null == str ...

  9. java中的url 编码与解码

    什么是application/x-www-form-urlencoded字符串? 答:它是一种编码类型.当URL地址里包含非西欧字符的字符串时,系统会将这些字符转换成application/x-www ...

随机推荐

  1. 20135319zl软件破解报告

    编写一个简单的C程序.要求只有输入a,才能通过. 现在,使用objdump –d po反汇编这个程序 找到main函数,可以发现movb $0x61,0x1f(%esp)这句语句中是将字符a(对应0x ...

  2. Express入门( node.js Web应用框架 )

    运用Express框架构建简单的NodeJS应用 Start  确认安装了NodeJS之后(最新的Node安装好后NPM也会自带安装了),npm可理解为nodejs的一个工具包.可通过查看版本来检测是 ...

  3. 编程语言教程书该怎么写: 向K&R学习!

    原文地址:Lax Language TutorialsAndrew Binstock 每年在评审Jolt Awards图书的时候,我都会被一些语言教程类图书弄得心力交瘁.从这些年的评审经验来看,这些语 ...

  4. linux(ubuntu) mysql安装使用

    简单的安装一下: sudo apt-get install mysql-server apt-get isntall mysql-client sudo apt-get install libmysq ...

  5. xpath定位中详解id 、starts-with、contains、text()和last() 的用法

    1.XPATH使用方法 使用XPATH有如下几种方法定位元素(相比CSS选择器,方法稍微多一点): a.通过绝对路径定位元素(不推荐!) WebElement ele = driver.findEle ...

  6. python 常用对linux系统文件及目录的操作

    目录 1.取得当前目录——os.getcwd() >>> import os >>> s=os.getcwd()#获得当前运行脚本所在目录 >>> ...

  7. Django中html里的分页显示

    分页一(very low) 因为数据量过大,而又想直观便捷的查看数据,进而通过分页显示就可以完成这项工作 app中views.py LIST=[] #全局定义一个LIST for i in range ...

  8. javascript 中检测数据类型的方法

    typeof 检测数据类型 javascript 中检测数据类型有好几种,其中最简单的一种是 typeof 方式.typeof 方法返回的结果是一个字符串.typeof 的用法如下: typeof v ...

  9. python作业模拟计算器开发(第五周)

    作业需求: 模拟计算器开发: 实现加减乘除及拓号优先级解析 用户输入 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/1 ...

  10. 【SVN】centos环境下搭建SVN服务器

    1.安装SVN,有些linux发行版自带SVN,可以用下面方法检测是否安装SVN. svn --version 如果 Subversion 客户端没有安装,命令将报告svn命令找不到的错误. 我们可以 ...