java io之编码
2021/8/27 22:06:03
本文主要是介绍java io之编码,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
结论1:
utf-8 中文占3个字节,英文占1个字节,数字占1个字节
gbk 中文占2个字节,英文占1个字节,数字占1个字节
utf-16be 中文占2个字节,英文占2个字节,数字占2个字节
java是双字节编码。不管中英阿拉伯数字,都是双字节编码。
结论2:
字节序列是使用的某编码,在字节序列转换成字符串时,就要用该编码方式
如果说在某个项目下,打开的文本文件是乱码,那拷到本机或者其他机器上,也许就不是乱码了。因为项目idea默认采用的编码方式可能和文本文件不是一种编码,但是本机或者其他机器上的编码格式也许和这个文件是相同的。反之,某个项目下,打开的文本文件是明文,但是拷到本机或者其他机器上是乱码,也是同样的道理。
结论3:
文本文件就是字节序列,可以是任意编码方式的字节序列。如果在中文机器上创建文件,那默认就是ansi编码格式的,如果在mac机器上创建文件,那默认是utf-8编码格式的。
package Demo_1_Encode; import java.io.UnsupportedEncodingException; class Encode { public static void main(String args[]) throws UnsupportedEncodingException { String s = "美团a4"; byte[] bs1 = s.getBytes();//系统默认编码utf-8,中文占3个字节,英文占1个字节,数字占1个字节 for(byte b:bs1){ System.out.print(Integer.toHexString(b&0xff)+" "); } System.out.println(); byte[] bs2 = s.getBytes("gbk");//中文占2个字节,英文占1个字节,数字占1个字节 for(byte b:bs2){ System.out.print(Integer.toHexString(b&0xff)+" "); } System.out.println(); byte[] bs3 = s.getBytes("utf-16be");//中文占2个字节,英文占2个字节,数字占2个字节 for(byte b:bs3){ System.out.print(Integer.toHexString(b&0xff)+" "); } System.out.println(); String s1 = new String(bs1,"gbk"); System.out.println(s1); String s2 = new String(bs1,"utf-8"); System.out.println(s2); } }
这篇关于java io之编码的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求
- 2024-10-01使用 golang 将ETH账户的资产平均分散到其他账户
- 2024-10-01JWT用户校验课程:从入门到实践
- 2024-10-01Server Component课程入门指南
- 2024-09-30Dnd-Kit学习:新手快速入门指南