Java 编码格式转换指南

在Java编程中,编码格式转换是一个常见的需求,无论是在处理文件输入输出、网络通信还是数据库操作,都可能会遇到不同编码格式的数据,掌握Java中如何进行编码格式转换是非常必要的,本文将详细介绍Java中常见的编码格式及其转换方法。
Java中常见的编码格式
- UTF-8
- GBK
- ISO-8859-1
- ASCII
Java中编码格式转换的方法
- 使用String类的
getBytes()和new String()方法
这是最简单也是最常用的方法,通过将字符串转换为字节数组,然后再将字节数组转换回字符串,从而实现编码格式的转换。

public class EncodingConversion {
public static void main(String[] args) {
String originalString = "这是一个测试字符串";
try {
// 原始编码格式
String originalEncoding = "GBK";
// 目标编码格式
String targetEncoding = "UTF-8";
// 转换编码格式
byte[] originalBytes = originalString.getBytes(originalEncoding);
String convertedString = new String(originalBytes, targetEncoding);
System.out.println("原始字符串:" + originalString);
System.out.println("转换后的字符串:" + convertedString);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
使用java.nio.charset.Charset类
Charset类提供了更多的编码格式转换功能,可以通过Charset类直接转换字符串的编码格式。
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
public class EncodingConversion {
public static void main(String[] args) {
String originalString = "这是一个测试字符串";
try {
// 原始编码格式
Charset originalEncoding = Charset.forName("GBK");
// 目标编码格式
Charset targetEncoding = StandardCharsets.UTF_8;
// 转换编码格式
String convertedString = originalString.getBytes(originalEncoding).toString(targetEncoding);
System.out.println("原始字符串:" + originalString);
System.out.println("转换后的字符串:" + convertedString);
} catch (Exception e) {
e.printStackTrace();
}
}
}
使用java.io.InputStreamReader和OutputStreamWriter类
在文件读写操作中,可以使用InputStreamReader和OutputStreamWriter类来实现编码格式的转换。

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
public class EncodingConversion {
public static void main(String[] args) {
String inputFilePath = "input.txt";
String outputFilePath = "output.txt";
try {
// 原始编码格式
Charset originalEncoding = Charset.forName("GBK");
// 目标编码格式
Charset targetEncoding = StandardCharsets.UTF_8;
// 读取原始文件
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(inputFilePath), originalEncoding));
// 写入目标文件
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outputFilePath), targetEncoding));
String line;
while ((line = reader.readLine()) != null) {
writer.write(line);
writer.newLine();
}
reader.close();
writer.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
在Java中,编码格式转换是一个基础且重要的操作,本文介绍了三种常见的编码格式转换方法,包括使用String类的getBytes()和new String()方法、使用Charset类以及使用InputStreamReader和OutputStreamWriter类,掌握这些方法,可以帮助你在Java编程中更好地处理不同编码格式的数据。
















