转:https://blog.csdn.net/heyanxi0101/article/details/80356870

java编码与解码(一)

编码表概述和常见的编码表

概述:有字符及其对应的数值组成的一张表

常见的编码表

ASCII:美国标准信息交换表
ISO8859-1:拉丁码表,欧洲码表
GB2312:中国的中文编码表
GBK:中国的中文编码表升级
GB18030:GBK的取代版本
BIG5:通用于香港、台湾地区的繁体字编码方案
UTF-8:最多用3个子节表示一个字符
Unicode:国际标准码,融合了多种文字,所有的文字都用两个子节来表示,Java语言使用的就是该码表

编码过程:把看得懂的变成看不懂的
    解码过程:把看不懂的变成看得懂的

在我们Java中定义了一个String,其编码方式是啥?

字符串实际上就是一个char数组。那么Char的编码,其实就是字符串的编码。那么Char是什么编码呢?Java中的String默认使用的是Unicode编码。
    Unicode是一中编码,所谓的编码就是一个编号到字符的一种映射关系,就仅仅是一对一的映射关系而已。

编码和编码格式的区别是什么?

1.Unicode 是一种编码,所谓的编码就是一个编号(数字)到字符的一种映射关系,就仅仅是一种一对一的映射关系而已。
    2. GBK、UTF-8是一种编码格式,是用来序列化或存储上述的(编号或者数字)的一种“格式”.

编码和编码格式:*java的String使用的编码的Unicode,当String存在于内存中的时候,是“只有编码没有编码格式的”,所以java程序中的任何String对象,说它是GBK或者UTF-8都是错的。String在内存中是不存在编码格式*的,它只是一个Unicode的一个字符而已。
    当字符串需要在网络中传输或者要被写入文件的是时候,就需要编码格式了。乱码的问题也因此出现了。

GBK 和 UTF-8:GBK 和 UTF-8 都是用来序列化或存储 Unicode 编码的数据的,但是分别是2中不同的格式,他们都是 Unicode 的实现方式。

ASCII码 和 Unicode:ASCII 和 Unicode一样也是一种编码,只不过这两种编码能编码的范围不同,Unicode 能编码的范围要更大一些,几乎能覆盖现存的所有字符。

Java中一些编解码的常见使用

1.流读取文件,具有转换编码功能的有:OutputStreamWriter 和 InputStreamReader
构造器如下:

// 创建指定字符集的 InputStreamReader
InputStreamReader(InputStream in, String CharsetName)
// 创建使用指定字符集的 OutputStreamWriter
OutputStreamWriter(OutputStream out, String CharsetName)

2.处理字符串编码问题

//a. 重新对获取的字符串进行编码
Byte[] bytes = str.getBytes(String encodeCharName);

//b. 重新对bytes进行编码,创建新的字符串对象
str = new String(Byte[] bytes, String decodeCharsetName);

// 一般结合使用
str = new String(str.getBytes(String encodeName), String decodeCharsetName);

3.处理请求参数传递编码问题

java中编码:URLEncoder.encode(strUri, “UTF-8”);
        java中解码:URLDecoder.decode(strUri, “UTF-8”);

java编码与解码(一)的更多相关文章

  1. java编码原理,java编码和解码问题

    java的编码方式原理 java的JVM的缺省编码方式由系统的“本地语言环境”设置确定,和操作系统的类型无关 . 在JAVA源文件-->JAVAC-->Class-->Java--& ...

  2. java中的URLEncoder.encode对应JS中用decodeURIComponent,js和java编码,解码

    用get请求传中文,经常搞到乱码,这几天搞搞这个东西,总结一下,以方便以后处理这类的问题. Java代码中的URLEncoder.encode方法和JS的encodeURIComponent功能差不多 ...

  3. 签名、BOM头、编码、Windows记事本编码、java编码解码的那些事

    对于Windows记事本: ANSI :GB2312 java中应使用GBK解码 Unicode :有签名的UTF-16LE java中应使用UTF-16解码 Unicode big endian : ...

  4. android Java BASE64编码和解码二:图片的编码和解码

    1.准备工作 (1)在项目中集成 Base64 代码,集成方法见第一篇博文:android Java BASE64编码和解码一:基础 (2)添加 ImgHelper 工具类 package com.a ...

  5. android Java BASE64编码和解码一:基础

    今天在做Android项目的时候遇到一个问题,需求是向服务器上传一张图片,要求把图片转化成图片流放在 json字符串里传输. 类似这样的: {"name":"jike&q ...

  6. encodeURIComponent编码后java后台的解码 (AJAX中文解决方案)

    encodeURIComponent编码后java后台的解码 (AJAX中文解决方案) 同学的毕业设计出现JavaScript用encodeURIComponentt编码后无法再后台解码的问题. 原来 ...

  7. java、js的编码、解码

    如果在地址栏挂载参数,特别是包含中文,往往要进行编码,取值时再解码,以下是java和js中编码.解码的各自方法. java: @Test public void test3() throws Unsu ...

  8. java中的url 编码与解码

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

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

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

随机推荐

  1. SpringBoot之Java配置

    Java配置也是Spring4.0推荐的配置方式,完全可以取代XML的配置方式,也是SpringBoot推荐的方式. Java配置是通过@Configuation和@Bean来实现的: 1.@Conf ...

  2. Java使用RSA加密解密签名及校验

    RSA加密解密类: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ...

  3. Intellij IDEA 自动清除无效 import

    打开偏好设置: 输入auto import: 注:想在以后的工程中都自动清除,可以在File中如下图操作:

  4. 原生js封装插件

    https://www.jianshu.com/p/937c6003851a object-fit: cover:https://www.jianshu.com/p/a2ce70fa9584 flex ...

  5. 20175212童皓桢 《Java程序设计》第六周学习总结

    20175212童皓桢 <Java程序设计>第六周学习总结 教材学习内容总结 第七章 内部类与异常类 1.内部类 Java支持在一个类中定义另一个类,这样的类称作内部类,包含内部类的类称为 ...

  6. mysql插件的初始化

  7. PDF 补丁丁 0.6.0.3355 版发布(修复阅读模式、书签缩放的问题)

    PDF补丁丁的新版本修复了染色阅读模式失效.编辑器书签缩放比例调整在某些场合下失败的问题.

  8. lr_场景设计之知识点-集合点、loadgenerator

    1.controller原理 通过场景设计来模拟用户的真实操作并调用bugen中的脚本,再通过设置的压力机产生压力,在场景运行中实时监控用户的执行情况,tps,响应时间,吞吐量,服务器资源使用情况: ...

  9. ORM概念

    ORM概念: 指对象结构和数据库架构间的映射,对象和数据库架构有一定的映射关系,让程序员可以不必编写sql

  10. 大数据之NBA

    2017年NBA季后赛落幕后,网络上仍有大量关于NBA关键词的搜索. 这是近30天来,通过PC端和移动端搜索的趋势,可以看到有些日期的搜索指数是猛增的,因为NBA有大新闻爆出,比如8月23日,骑士与凯 ...