乱码

本文通过一个Java代码示例,探讨了编码与解码过程中可能出现的乱码问题,主要涉及UTF-8和GBK字符集。当字节数不足或者字符集不统一时,可能会导致乱码。编码时可以指定字符集,解码时必须确保与原始工程的字符集一致,否则会出现无法正确还原字符串的情况。
摘要由CSDN通过智能技术生成
package com.sxt.io;

import java.io.UnsupportedEncodingException;

public class ContentEncode {
    public static void main(String[] args) throws UnsupportedEncodingException {
        String str ="生aa";
        byte[] datas=str.getBytes();
        byte[] datas2=str.getBytes("gbk");
        System.out.println(datas.length);
        System.out.println(datas2.length);
        //String(byte[] bytes, String charsetName)
        String str2=new String(datas,"utf8");
        String str3=new String(datas,"gbk");
        //String(byte[] bytes, int offset, int length, Charset charset)
        String str4=new String(datas,0,datas.length-3,"utf8");
        System.out.println(str2);
        System.out.println(str3);
        System.out.println(str4);

    }
}

5
4
生aa
鐢焌a

问题总结:

一、乱码原因:

1、字节数不够

2、字符集不统一

 二、

编码 :字符-->字节数组-----字符集可以随意指定

解码:字节数组-->字符------字符集必须和当前工程统一

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值