• 03 字符集、编码解码、乱码解决


    字符集

    • ASCLL码不包含中文
    • GBK是中文专用
    • Unicode国际通用
    • UTF-8 可变长编码
    • ISO 8859-1

    编码解码

    编码:字符转二进制,便于传输

    示例:

    String str = "我是一个好人";

    byte[] dates = str.getBytes();//括号汇总可选填字符集名称,表示按某种字符集编码

    解码:将二进制机器码转化为字符,便于阅读

    示例:将网络上传来的数据转换为字符串

    str = new String(dates); //str与dates为上文中的变量。new String的方法请查看String类的构造方法。

    乱码解决

    转码时导致乱码可能有两种原因:

    1.接收的数据不完整

    如:str = new String(bytes,0,bytes.length-1);

    2.字符集不统一

    如:将中文使用ISO-8859-1解码导致乱码

    str = new String(sBytes,"ISO-8859-1");

    本文代码

    public class Charset
    {
    	public static void main(String[] args){
    		String str = "我是好人";
    		byte[] sBytes = str.getBytes();//按默认字符集解码
    		System.out.println(sBytes.length);
    		for(byte b : sBytes){
    			System.out.println(b);
    		}
    		System.out.println("------------------");
    		//乱码原因
    		//丢失数据
    		str = new String(sBytes,0,sBytes.length-1);
    		System.out.println(str);//输出结果为:我是好?
    		//编码错误
    		try{
    			str = new String(sBytes,"ISO-8859-1");
    		}catch(Exception e){
    			System.err.println("解码异常!");
    		}
    		System.out.println(str);//输出结果:?????
    	}
    }
    

      

  • 相关阅读:
    图形验证码---pillow
    vue富文本编辑器vue-quill-editor
    django邮件发送
    Django REST Framework JWT
    jwt验证
    使用django的用户表进行登录管理
    [转]CSRF漏洞详细说明
    Django框架10
    Django框架09
    Django框架08
  • 原文地址:https://www.cnblogs.com/Scorpicat/p/11908745.html
Copyright © 2020-2023  润新知