java如何转gbk
Java 字符串转 GBK 编码
在 Java 中将字符串转换为 GBK 编码,可以通过指定字符集来实现。以下是具体的方法:
String str = "需要转换的字符串";
byte[] gbkBytes = str.getBytes("GBK");
将 GBK 字节数组转回字符串
如果需要将 GBK 编码的字节数组重新转换为字符串,可以使用以下代码:

String originalStr = new String(gbkBytes, "GBK");
处理编码转换异常
字符编码转换可能会抛出 UnsupportedEncodingException,建议使用 try-catch 块处理:

try {
String str = "测试文本";
byte[] gbkBytes = str.getBytes("GBK");
String decodedStr = new String(gbkBytes, "GBK");
System.out.println(decodedStr);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
使用 Charset 类(Java 7+)
从 Java 7 开始,可以使用 java.nio.charset.Charset 类更简洁地处理编码:
import java.nio.charset.Charset;
String str = "文本内容";
byte[] gbkBytes = str.getBytes(Charset.forName("GBK"));
String decodedStr = new String(gbkBytes, Charset.forName("GBK"));
读写文件时的 GBK 编码
在读写文件时指定 GBK 编码,可以使用 InputStreamReader 和 OutputStreamWriter:
// 读取 GBK 编码的文件
try (BufferedReader reader = new BufferedReader(
new InputStreamReader(new FileInputStream("file.txt"), "GBK"))) {
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
}
// 写入 GBK 编码的文件
try (BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(new FileOutputStream("output.txt"), "GBK"))) {
writer.write("GBK 编码的内容");
}
注意事项
- GBK 是中文常用的字符集,但并非所有系统默认支持。如果遇到不支持的情况,需确保 JVM 环境包含 GBK 编码。
- 在跨平台或网络传输时,明确指定编码可以避免乱码问题。






