gpt4 book ai didi

java - 如何将 UTF-8 文字转换为其 UTF-8 字符?

转载 作者:行者123 更新时间:2023-12-02 00:35:13 25 4
gpt4 key购买 nike

我有一堆以 UTF-8 编码的文本文件。文件内的文本如下所示:\x6c\x69b/\x62\x2f\x6d\x69nd/m\x61x\x2e\x70h\x70

我已复制所有这些文本文件并将它们放入目录 /convert/ 中。

我需要读取每个文件并将编码的文字转换为字符,然后保存文件。 文件名.converted.txt

执行此操作最明智的方法是什么?我可以做什么来转换为新文本?是否有一个函数可以处理 Unicode 文本以在文字类型和字符类型之间进行转换?我应该为此使用不同的编程语言吗?

这就是我现在所拥有的:

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;

public class decode {
public static void main(String args[]) {
File directory = new File("C:/convert/");
String[] files = directory.list();
boolean success = false;
for (String file : files) {
System.out.println("Processing \"" + file + "\"");

//TODO read each file and convert them into characters
success = true;

if (success) {
System.out.println("Successfully converted \"" + file + "\"");
} else {
System.out.println("Failed to convert \"" + file + "\"");
}

//save file
if (success) {
try {
FileWriter open = new FileWriter("C:/convert/" + file + ".converted.txt");
BufferedWriter write = new BufferedWriter(open);
write.write("TODO: write converted text into file");
write.close();
System.out.println("Successfully saved \"" + file + "\" conversion.");
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}

最佳答案

(看起来您的意思有些困惑 - 这个答案假设输入文件完全是 ASCII 格式,并使用“\x”对不在 ASCII 范围内的任何字节进行十六进制编码。)

在我看来,UTF-8 部分实际上是无关紧要的。您可以将其视为不透明的二进制数据进行输出。假设输入文件完全是 ASCII:

  • 以文本形式打开输入文件(例如,使用包含在 InputStreamReader 中并指定“US-ASCII”编码的 FileInputStream)
  • 以二进制形式打开输出文件(例如使用 FileOutputStream)
  • 读取输入中的每个字符
  • 是“\”吗?
    • 如果不是,则将字符的 ASCII 值写入输出流(只需从 charbyte 的大小写)
    • 下一个角色是什么?
    • 如果是“x”,则读取接下来的两个字符,将它们从十六进制转换为字节(有很多代码可以完成这部分),然后将该字节写入输出流
    • 如果是“\”,则将“\”的 ASCII 值写入输出流
    • 否则,可能会抛出指示失败的异常
  • 循环直到用完输入文件
  • 关闭finally block 中的两个文件

然后您将拥有一个“正常”UTF-8 文件,任何支持 UTF-8 的文本编辑器都应该可以读取该文件。

关于java - 如何将 UTF-8 文字转换为其 UTF-8 字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8005848/

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