JAVA基础---编码解码

Posted 丨核桃牛奶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA基础---编码解码相关的知识,希望对你有一定的参考价值。

所谓编码 即char->byte

所谓解码 即byte->char


ISO-8859-1 中文字符会被黑洞吸收 全部变为"?"

GB2312 汉字可以被编码为双字节 但是该标准仅仅支持6763个汉字 且char到byte需要查表

 

GBK 与GB2312基本相同 只不过包含更多的汉字

 

UTF-16 将char强行拆成两个字节 不存在的部分写00  规则简单 编码效率高 缺点浪费了部分存储空间 且一个汉字拆为三个字节

其中一个字符码损坏 后面会受影响 适合在本地磁盘和内存之间使用 不适合网络传输(易损坏字节流 数据经过网络传输时都是以字节为单位的

UTF-8 对单字节范围内的字符仍然使用1个字节表示,对汉字则采用3个字节表示 更适合在网络传输  且UTF-8在编码效率上和编

码安全性上做了平衡,是理想的中文编码方式

 

UTF-16 UTF-8都是处理Unicode编码 


当采用压缩算法对字符进行压缩时候,不能仅仅看字符数量的减少(这是没意义的),而要重点关注最终的字节数,这还取决于选择的编码方式。

 

以上是关于JAVA基础---编码解码的主要内容,如果未能解决你的问题,请参考以下文章

[Java基础]字符串中的编码解码问题

Java编码——编码基础知识

java中编码与解码分别指啥?

java中编码和解码的问题

java 中编码解码问题

java里关于String的编码与解码