java基础52 编码与解码
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 编码与解码的更多相关文章
- java使用Base64编码和解码的图像文件
1.编码和解码下面的代码示例看: import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import j ...
- Java利用Base64编码和解码图片文件
1.编码与解码代码如下所示: import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import jav ...
- Day5 Pyhton基础之编码与解码(四)
1.编码与解码 1.1现在常用的编码类型
- Java 字符集,编码、解码
1. 计算机中文件.数据底层都是基于二进制的. 计算机底层并没有文本文件.图片文件之分,它只是记录着每个文件的二进制序列. 字符集:包含着字符和二进制序列之间的对应关系,一个字符对应一个二进制序列. ...
- Java基础——字符编码
一.ASII 美国(国家)信息交换标准(代)码. 计算机中只有数字,一切都是用数字表示,屏幕上显示的一个一个的字符也不例外. 一个字节可表示的数字为0-255,足以显示键盘上的所有的字符 例如. a ...
- js与java encodeURI 进行编码与解码
JS escape()使用转义序列替换某些字符来对字符串进行编码 JavaScript 中国 编码后 JavaScript %u4E2D%u56FD unescape()对使用 encodeUR ...
- Java基础(52):ClassCastException详解(转)
ClassCastException,从字面上看,是类型转换错误,通常是进行强制类型转换时候出的错误.下面对产生ClassCastException异常的原因进行分析,然后给出这种异常的解决方法. 这 ...
- java进行url编码和解码
public static String getURLEncoderString(String str) { String result = ""; if (null == str ...
- java中的url 编码与解码
什么是application/x-www-form-urlencoded字符串? 答:它是一种编码类型.当URL地址里包含非西欧字符的字符串时,系统会将这些字符转换成application/x-www ...
随机推荐
- 《剑指offer》— JavaScript(20)包含min函数的栈
包含min函数的栈 题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数. 实现代码 var stack = []; function push(node) { stack. ...
- opencv 启动摄像头 C++
http://blog.csdn.net/thefutureisour/article/details/7530177 在网上看了许多关于OpenCV启动摄像头的资料,但是,都是基于C语言的,代码又臭 ...
- 团体程序设计天梯赛-练习集 L1-031. 到底是不是太胖了
比较两个实型的数: 若两者相等,也许用a>/b会出错... 我又想到了codeforces有很多这样的坑... #include <stdio.h> #include <std ...
- unity生成Android apk
前提:本文默认你安装了unity5.6版本,不是这个版本的没有Gradle(new)选项,也默认你安装了Android Studio并配置好了环境变量. Gradle(new):打包Android S ...
- Windows上虚拟环境的安装及使用
Why Install VirtualEnv? 可以方便的解决不同项目对类库的依赖问题. 可以在系统中Python解释器中避免包的混乱和版本的冲突. 为每个程序单独创建虚拟环境,可以保证程序只能访 ...
- Zabbix监控PV和UV
Zabbix-server:172.21.97.153 Zabbix-agent(Nginx):172.17.27.61 # Nginx日志如下: # head -3 Syz.access.log w ...
- AT1983 BBQ Hard
洛谷题目链接:BBQ Hard 题意翻译 有 n 个数对 \((A_i; B_i)\),求出 \[\sum_{i=1}^{n}\sum_{j=i + 1}^{n}{a_i+b_i+a_j+b_j ...
- IntelliJ IDEA编码格式设置
之前一直使用eclipse能够熟悉的设置工程和文件的编码格式,现在换成IntelliJ IDEA设置编码格式的地方有点变化,按照如图所示进行设置: 这里要将Transparent native-to- ...
- php设计模式之工厂设计模式
概念: 工厂设计模式提供获取某个对象的新实例的一个接口,同时使调用代码避免确定实际实例化基类步骤. 很多高级模式都是依赖于工厂模式. 好处: PHP中能够创建基于变量内容 ...
- HDU 1251 统计难题 (裸的字典树)
题目链接 Problem Description Ignatius最近遇到一个难题,老师交给他很多单词(只有小写字母组成,不会有重复的单词出现),现在老师要他统计出以某个字符串为前缀的单词数量(单词本 ...