字符集与编码--Java class文件的编码方式
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了字符集与编码--Java class文件的编码方式,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1417字,纯文字阅读大概需要3分钟。
内容图文
1 public static void main(String[] args) throws UnsupportedEncodingException { 2 /** 3 * 1. char 和 String 在内存中保存都使用Java内码,也即UTF-16 4 * 2. char 在class文件中使用UTF-16表示 5 * 3. String在class文件中使用UTF-8表示 6 * 4. 序列化和Class文件中用"modified UTF-8",不是UTF-8。参考https://docs.oracle.com/javase/7/docs/api/java/io/DataInput.html#modified-utf-8 7 * 8 * 5. 问题:内存存储的是UTF-16编码的字节,那么String.getBytes("UTF-8")应该是从UTF-16到UTF-8的转换过程 9 * 解答:String.getBytes()是一个用于将String的内码转换为指定的外码的方法(问题中UTF-8就是指定的外码)。 10 * 无参数版使用平台的默认编码作为外码,有参数版使用参数指定的编码作为外码。 11 * 将String的内容用外码编码好,结果放在一个新byte[]返回。 12 * 13 * 14 * @date 2020/1/17 15 * @return 16 */ 17 char aaa = '中'; // class 文件中是(UTF-16) 4E 2D 18 String bbb = "a中"; // class 文件中是(UTF-8) 61 E4 B8 AD 19 20 System.out.println(Integer.toHexString(aaa));//4E2D 21 22 System.out.println(Arrays.toString(bbb.getBytes("UTF-8")));//61,E4,B8,AD 23 System.out.println(Arrays.toString(bbb.getBytes("UTF-16"))); //带BOM的字节数组:EF,FF,00,61,4E,2D 24 System.out.println(Arrays.toString(bbb.getBytes("UTF-16be"))); //无BOM的字节数组:00,61,4E,2D 25 26 }
内容总结
以上是互联网集市为您收集整理的字符集与编码--Java class文件的编码方式全部内容,希望文章能够帮你解决字符集与编码--Java class文件的编码方式所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。