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编解码

  • 相关阅读:
    Oracle面试题目及解答
    java -jar Incompatible argument to function
    plsql 查询到别的用户下面的表
    redis数据类型[string 、list 、 set 、sorted set 、hash]
    redis-cli 常用命令
    js判断浏览器,包括Edge浏览器
    HTMl5的sessionStorage和localStorage
    JS实现密码加密
    sprintf.js
    js-crc32
  • 原文地址:https://www.cnblogs.com/gossip/p/6340711.html
Copyright © 2011-2022 走看看