gpt4 book ai didi

java - 如何使用 Java 处理 UTF-16LE 编码的文本文件?或将其转换为 ASCII?

转载 作者:行者123 更新时间:2023-12-03 22:59:43 25 4
gpt4 key购买 nike

如果之前有人问过,我很抱歉。我正在尝试使用 Java 处理文本文件。文本文件是从 MS SQLServer 导出的。当我在 PSPad(一种文本编辑器,我可以在其中查看任何十六进制格式的文件)中打开它时,它告诉我我的文本文件是 UTF-16LE。因为我是从别人那里得到的,所以很有可能。

现在我的 Java 程序无法处理该格式。所以我想知道是否有任何方法可以将我的文本文件转换为 ASCII 格式或进行一些预处理或其他任何操作?我可以修改文件。

非常感谢任何帮助。

谢谢。

编辑 1

我写了这个程序,但它没有按预期工作。如果我在 PSPad 中看到输出文件,我可以将每个字符视为一个 2 字节的字符,例如'2' 是 3200 而不是 32; 'M' 是 4D00 而不是 4D,等等。 虽然说输出文件的编码是 UTF-8。我在这里有点困惑。谁能告诉我我做错了什么?

public static void main(String[] args) throws Exception {

try {
// Open the file that is the first
// command line parameter
FileInputStream fstream = new FileInputStream(
"input.txt");
// Get the object of DataInputStream
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in,"UTF-16LE"));
String strLine;
// Read File Line By Line
while ((strLine = br.readLine()) != null) {
// Write to the file
writeToFile(strLine);
}
// Close the input stream
in.close();
} catch (Exception e) {// Catch exception if any
System.err.println("Error: " + e.getMessage());
}

System.out.println("done.");
}

static public void writeToFile(String str) {
try {
OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream("output.txt", true), "UTF-8");
BufferedWriter fbw = new BufferedWriter(writer);
fbw.write(str);
fbw.close();
} catch (Exception e) {// Catch exception if any
System.err.println("Error: " + e.getMessage());
}
}

编辑 2

以下是截图:

在 PSPad(免费的十六进制查看器)中输入文件 enter image description here

PSPad 中的输出文件 enter image description here

这是我期待看到的: enter image description here

最佳答案

为字符集 UTF-16LE 创建一个 InputStreamReader,您将准备就绪。

关于java - 如何使用 Java 处理 UTF-16LE 编码的文本文件?或将其转换为 ASCII?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6191504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com