跳到主要内容
JackSparrow414
返回

关于java中编码和解码(一)

本文导航

展开本文导航

正文

计算机中所能表示的字符仅仅为0-255个,平时我们用到的语言太多,计算机本身根本无法表示。必须将我们的不同的语言转换为计算机所能理解的语言----bit。好了,废话不多说,进入正题

举个例子来说明java中编码和解码的过程

 例如:java中将字符串转换为字节数组的方法为String.getBytes方法,此方法会调用StringCoding.encode方法,如下图

String.getBytes 调用 StringCoding.encode 的 Java 源码

接着StringCoding方法里则会调用java.nio.charset类,此类下的lookupCharset()查找对应的编码格式,如:utf-8,gbk等

StringCoding.encode 查找字符集并调用 StringEncoder 编码

得到编码名称之后,会新建StringEncoder对象,接着调用此对象的encode方法,进行编码,在最后最后的底层,会调用Arrays.copyof()方法,此方法新建一个byte[],并进行返回。

以上就是字符转换为字节的过程,字节转化为字符思想和此过程类似,在此不再介绍!

注意:java中所有涉及到字符到字节或者字节到字符的实现原理都为此过程!


分享本文:

继续阅读本系列

Java 编码和解码

  1. 关于java中编码和解码(一)正在阅读
  2. java编码和解码(二)

评论

欢迎提问、纠错和分享经验。发表评论需要登录 GitHub;中英文版本共享评论。

评论仅在正式网站开放。