欢迎访问宙启技术站
智能推送

Java字符编码转换的函数

发布时间:2023-06-21 15:30:54

在Java开发中,经常会遇到需要进行字符编码转换的情况。例如,将UTF-8格式的字符串转换为GBK格式的字符串,或者将ISO-8859-1格式的字符串转换为UTF-8格式的字符串等等。本文将介绍Java中常用的字符编码转换的函数。

1. String.getBytes()方法

String.getBytes()方法可以将一个字符串转换为指定的编码格式的字节数组。方法的语法如下:

byte[] bytes = str.getBytes(charset);

其中,str表示需要转换的字符串,charset表示指定的编码格式。例如,将UTF-8格式的字符串转换为GBK格式,可以使用以下代码:

String str = "hello world";

byte[] bytes = str.getBytes("GBK");

2. new String(byte[] bytes, Charset charset)方法

new String(byte[] bytes, Charset charset)方法可以将一个字节数组转换为指定的字符串。方法的语法如下:

String str = new String(bytes, charset);

其中,bytes表示需要转换的字节数组,charset表示指定的编码格式。例如,将UTF-8格式的字节数组转换为GBK格式的字符串,可以使用以下代码:

String str = new String(bytes, Charset.forName("GBK"));

3. Charset类

Java中的Charset类可以用来表示一个字符编码格式。可以使用Charset.defaultCharset()方法获取默认的字符编码格式。例如:

Charset charset = Charset.defaultCharset();

System.out.println(charset.name());

输出结果为:UTF-8

可以使用Charset.forName(String charsetName)方法获取指定的字符编码格式。例如:

Charset charset = Charset.forName("GBK");

System.out.println(charset.name());

输出结果为:GBK

可以使用CharsetEncoder和CharsetDecoder类,将字符编码格式之间进行转换。例如,将UTF-8格式的字符串转换为GBK格式的字符串,可以使用以下代码:

String str = "hello world";

Charset utf8Charset = Charset.forName("UTF-8");

Charset gbkCharset = Charset.forName("GBK");

ByteBuffer utf8Buffer = utf8Charset.encode(str);

CharBuffer charBuffer = utf8Charset.decode(utf8Buffer);

ByteBuffer gbkBuffer = gbkCharset.encode(charBuffer);

String gbkStr = new String(gbkBuffer.array());

4. InputStreamReader和OutputStreamWriter类

Java中的InputStreamReader和OutputStreamWriter类可以用来进行字符编码格式之间的转换。例如,将ISO-8859-1格式的文本文件转换为UTF-8格式的文本文件,可以使用以下代码:

FileInputStream fis = new FileInputStream("input.txt");

InputStreamReader isr = new InputStreamReader(fis, "ISO-8859-1");

FileOutputStream fos = new FileOutputStream("output.txt");

OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");

char[] buffer = new char[1024];

int length;

while ((length = isr.read(buffer)) != -1) {

    osw.write(buffer, 0, length);

}

isr.close();

osw.close();

总结

本文介绍了Java中常用的字符编码转换的函数,包括String.getBytes()方法、new String(byte[] bytes, Charset charset)方法、Charset类、InputStreamReader和OutputStreamWriter类。在实际开发中,应该根据具体需求选择合适的方法进行字符编码转换,以保证系统的稳定性和正确性。