zoukankan      html  css  js  c++  java
  • Java编解码分析


    一、为什么要编解码?
    网络或磁盘传输的单位都是字节,平常我们使用的单位都是字符,所以数据需要在字节和字符之间进行转换。

    二、编解码概念
    1、编码:字符转换成字节
    2、解码:字节转换成字符

    三、常用字符集
    1、ASCII码:共128个,单字节编码
    2、ISO-8859-1:ISO制定的ASCII扩展编码,共256个字符,单字节编码,是很多系统的默认字符集
    3、GB2312:双字节编码,中文字符集
    4、GBK:双字节编码,中文字符集,兼容GB2312,扩展GB2312
    5、UTF-16:双字节编码,即16bit,定长表示,包含世界上所有的字符,每个字符都用两个字节表示,Java以UTF-16作为内存的存储格式
    6、UTF-8:变长表示,不同的字符使用1-6个字节表示

    四、乱码原因
    从char到byte(编码)或从byte到char(解码)的转换过程中编码和解码的字符集不一致导致的。
    1、乱码示例一:编码使用GBK、解码使用ISO-8859-1
     2、乱码示例二:使用不支持汉字的ISO-8859-1字符集,ISO-8859-1会把一切不在码值范围内的字符统一用3f表示,3f表示的就是?

    五、Java中需要编解码的场景
    1、I/O操作中存在编解码
    2、内存操作编解码
    3、URL编解码

  • 相关阅读:
    从Mono 4.0观C# 6.0部分新特性
    (译文)Python中的staticmethod与classmethod
    ubuntu中mysql中文乱码及用python3.x调用
    tornado学习 TCPClient 实现聊天功能
    tornado学习 TCPServer 实现聊天功能
    java基础知识3
    java基础知识5
    JSTL常用标签6
    Java基础知识2
    java基础知识4
  • 原文地址:https://www.cnblogs.com/gossip/p/6340711.html
Copyright © 2011-2022 走看看