对于java字符编码你都了解吗?下面的文章要给大家介绍的就是java字符编码,对这个方面不是很清楚的小伙伴一起来了解一下吧。
在计算机当中,任何的文字都是以指定的编码方式存在的,在Java程序开发当中,最常见的是ISO8859-1、GBK/GB2312、Unicode、UTF编码。
Java中常见编码说明:
UTF-UTF编码兼容了ISO8859-1编码,同时也能够用来表示所有的语言字符,但是,UTF编码是不定长编码,每一个字符的长度为1~6个字节不等,一般在中文网页中使用此编码,可以节省空间。
GBK/GB2312-中文的国标编码,用来表示汉字,属于双字节编码,GBK能够表示简体中文和繁体中文,GB2312只可以表示简体中文,GBK兼容GB2312。
ISO8859-1-属于单字节编码,最多只可以表示0~255的字符范围。
Unicode-是一种编码规范,是为了解决全球字符通用编码而设计的,UTF-8和UTF-16是这种规范的一种实现,这个编码不兼容ISO8859-1编码,Java内部采用此编码。
在程序当中,假如对字符编码没有做好处理,那么就会出现乱码的问题,这就好比,本机的默认编码是GBK,可是,在程序当中使用了ISO8859-1编码,那么,就会出现字符的乱码问题。
本地的默认编码可以使用System类查看,Java当中System类能够取得与系统有关的信息,所以直接使用此类可以找到系统的默认编码,方法:
public static Properties getProperty()
使用上面的方法就可以查看JVM的默认编码,代码:
public static void main(String[] args) { // 获取当前系统编码 System.out.println("系统默认编码:" + System.getProperty("file.encoding")); }
运行结果:
系统默认编码:GBK
可以知道,目前,操作系统的默认编码是GBK。
下面的话,就来通过一个例子来讲解一下乱码的产生。
目前,本地的默认编码是GBK,下面通过ISO8859-1编码对文字进行编码转换,假如,要实现编码的转换可以使用String类中的getBytes(String charset)方法,这个方法能够设置指定的编码,方法的格式:
public byte[] getBytes(String charset);
示例代码:
public class Test { public static void main(String[] args) throws Exception { File f = new File("D:" + File.separator + "test.txt"); // 实例化输出流 OutputStream out = new FileOutputStream(f); // 指定ISO8859-1编码 byte b[] = "C语言中文网,你好!".getBytes("ISO8859-1"); // 保存转码之后的数据 out.write(b); // 关闭输出流 out.close(); } }
运行结果:
可以发现的是,因为编码不一致,所以,在保存的时候就出现了乱码问题,在Java开发当中,乱码是一个很常见的问题,那么导致乱码出现的原因也就只有一个,那就是输出内容的编码和接收内容的编码不一致。
对于java字符编码你都清楚了吗?更多java入门内容,请继续关注奇Q工具网来进行了解吧。
推荐阅读: