关于字符串出现的乱码问题
2020-06-29 本文已影响0人
T__J
在字符串的编码解码过程中,往往会出现乱码,那么遇到这种问题,一般怎么解决?
需要记住几个要点:
1:关于getBytes(),记住一定要指定编码格式getBytes("utf-8")这种
2:getBytes()和new String()一定是成对出现的,因此一定要使用new String("utf-8")
3:getBytes怎么理解?把字符串中的每一个char转成不同编码格式表示的二进制,英文字母还好,汉字这种,不同的编码格式往往长度不一样,例如
System.out.println(Arrays.toString("月".getBytes("gbk")));--转化为[-44, -62],长度为2
System.out.println(Arrays.toString("月".getBytes("utf8")));--转化为[-26, -100, -120],长度为3
而应为是一样的,因此纯英文不会出现乱码:
System.out.println(Arrays.toString("A".getBytes("gbk")));--转化为[65]
System.out.println(Arrays.toString("A".getBytes("utf8")));--转化为[65]
4:toCharArray方法是获取每一个char,注意区分。