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

在字符串的编码解码过程中,往往会出现乱码,那么遇到这种问题,一般怎么解决?

需要记住几个要点:

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容