java 如何转码
字符编码基础
Java中字符串默认使用Unicode编码(UTF-16)。转码通常涉及将字节序列按照特定编码转换为字符串,或将字符串转换为指定编码的字节序列。
字符串转字节数组
使用String.getBytes()方法指定目标编码:

String text = "示例文本";
byte[] utf8Bytes = text.getBytes("UTF-8");
byte[] gbkBytes = text.getBytes("GBK");
字节数组转字符串
通过String构造函数指定源编码:

String utf8Str = new String(utf8Bytes, "UTF-8");
String gbkStr = new String(gbkBytes, "GBK");
处理编码异常
必须捕获UnsupportedEncodingException:
try {
byte[] bytes = text.getBytes("ISO-8859-1");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
编码检测与转换
使用Charset类进行高级操作:
Charset utf8Charset = StandardCharsets.UTF_8;
ByteBuffer buffer = utf8Charset.encode("文本内容");
CharBuffer charBuffer = utf8Charset.decode(buffer);
常见编码场景
- 网络传输:建议统一使用UTF-8编码
- 文件读写:
InputStreamReader和OutputStreamWriter可指定编码 - 数据库交互:JDBC驱动通常有编码配置参数






