关于字符串出现的乱码问题

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,注意区分。

上一篇 下一篇

猜你喜欢

热点阅读