java如何改变编码
修改Java文件编码
在Java中修改文件编码通常涉及读取或写入文件时指定字符集。使用InputStreamReader或OutputStreamWriter并传入Charset参数可以控制编码。
import java.io.*;
import java.nio.charset.StandardCharsets;
public class ChangeEncoding {
public static void main(String[] args) throws IOException {
// 读取UTF-8编码文件并转换为GBK
try (BufferedReader reader = new BufferedReader(
new InputStreamReader(
new FileInputStream("input.txt"), StandardCharsets.UTF_8));
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream("output.txt"), "GBK"))) {
String line;
while ((line = reader.readLine()) != null) {
writer.write(line + "\n");
}
}
}
}
设置编译编码
Java源文件编译时需要指定编码,确保编译器正确解析源代码。通过-encoding参数设置源文件编码。

javac -encoding UTF-8 MyClass.java
修改JVM默认编码
JVM默认编码会影响System.out等操作的字符处理。启动时通过-Dfile.encoding参数修改。

java -Dfile.encoding=UTF-8 MyClass
处理字符串编码转换
字符串编码转换可通过String类的getBytes方法和构造函数实现。
String original = "示例文本";
byte[] utf8Bytes = original.getBytes(StandardCharsets.UTF_8);
String newString = new String(utf8Bytes, StandardCharsets.ISO_8859_1);
NIO文件编码处理
Java NIO的Files类提供便捷方法处理不同编码的文本文件。
import java.nio.file.*;
import java.nio.charset.*;
List<String> lines = Files.readAllLines(Paths.get("file.txt"), Charset.forName("GBK"));
Files.write(Paths.get("new.txt"), lines, StandardCharsets.UTF_8);






