java编码与解码(一)

转: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”);

原文地址:https://www.cnblogs.com/wenhuang/p/9888983.html

时间: 2024-11-12 17:01:34

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

JAVA编码(中文转码)问题总结

本章主要分析Java编码和解码的原理,以及中文转码存在的问题做个简单的总结 目录 1  编码基础知识 ISO-8859-1编码 GBK GB2312 UTF-8 2  WEB系统转换编码       原理 Servlet网络传输编码 Struts2 控制编码 Spring 控制编码 3 字符串转字节 4 字节转字符串 1 编码基础知识 ISO-8859-1编码 ISO-8859-1编码是单字节编码,向下兼容ASCII,其编码范围是0x00-0xFF,0x00-0x7F之间完全和ASCII一致,0

了解URL编码的基本概念,在javascript和java程序中使用内置的API进行编码和解码

1.URL编码的基本概念 URL只能使用US-ASCII 字符集来通过因特网进行发送.由于URL常常会包含 ASCII 集合之外的字符,URL必须转换为有效的 ASCII 格式.URL 编码使用 "%" 其后跟随两位的十六进制数来替换非 ASCII 字符.URL 不能包含空格,URL 编码通常使用 + 来替换空格.所谓URL编码,就是将非US-ASCII字符和US-ASCII中的特殊字符,用相应的字符集编码来表示.比如,汉字"你",如果用UTF-8编码,出现在URL

java利用Base64编码和解码图片文件

1.编码与解码代码如下所示: import java.awt.image.BufferedImage; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; import javax.image

java、js的编码、解码

如果在地址栏挂载参数,特别是包含中文,往往要进行编码,取值时再解码,以下是java和js中编码.解码的各自方法. java: @Test public void test3() throws UnsupportedEncodingException{ System.out.println(URLEncoder.encode("我", "UTF-8"));//%E6%88%91 System.out.println(URLDecoder.decode("%E

java中URL 的编码和解码函数

java中URL 的编码和解码函数java.net.URLEncoder.encode(String s)和java.net.URLDecoder.decode(String s);在javascript 中URL 的编码和解码函数escape(String s)和unescape(String s) ; 在前台:var url="test.jsp?param="+escape('this%is#te=st&o k?+/');在后台: String param=request.

数据的编码和解码--java例子

昨天借了一本<网络程序设计实验教程(java语言)>,然后看了第一章,一个Swing例子,于是为大家分享一下! 关于数据的编码与解码,我觉得就例子而言已经交待得非常清楚了,两种方法做的. 将其转为16进制来弄的 //utf8解码 btnUTF8Decode = new JButton("UTF8\u89E3\u7801\u7801\u7ED3\u679C"); btnUTF8Decode.addMouseListener(new MouseAdapter() { @Over

android Java BASE64编码和解码

1.Base64  的作用 主要不是加密,它主要的用途是把一些二进制数转成普通字符用于网络传输.     由于一些二进制字符在传输协议中属于控制字符,不能直接传送需要转换一下就可以了. 2.如何获得BASE64 代码,有两种方式 方式一:解决eclipse中无法直接使用Base64Encoder的问题 今天要使用Base64Encoder,却发现在Eclipse中无法找到该类,google了哈,原来Base64Encoder并不属于JDK标准库范畴,但是又包含在了JDK中. 解决方法:按照如下方

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

对于Windows记事本: ANSI :GB2312 java中应使用GBK解码 Unicode :有签名的UTF-16LE java中应使用UTF-16解码 Unicode big endian :有签名的UTF-16BE java中应使用UTF-16解码 UTF-8 :有签名的UTF-8 java中只能手动去掉签名了再用UTF-8解码了 对于java程序的解码: GBK :GBK编码可以兼容GB2312,因此用GBK处理GBK.GB2312两种编码 UTF-8 :无签名的UTF-8 UTF-

【Java】利用Java对网址进行二维码的编码与解码操作

二维码之所以能够封装图片.文件等主要是把图片.文件等URL编码成二维码,用户一扫手机自动访问. 上一次在<[jQuery]使用jquery-qrcode插件把网址转化成二维码,手机扫一扫即可访问>(点击打开链接)使用jquery-qrcode插件配合jquery能够把网址编码成字符串,在网址上显示编码后的二维码,移动设备能够直接扫一扫. 这次将在Java中实现对二维码的编码与解码输出到磁盘上,无需在网页中进行,而且还可以解码,但是步骤比较复杂而已. Java自身当然没有二维码的编码与解码的功能