gpt4 book ai didi

java - BufferedReader,读取编辑文本中的字符给出奇怪的字符

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

好的,我正在通过 BufferedReader 读取 .docx 文件,并希望将文本存储在 edittext 中。 .docx 不是英语,而是另一种语言(希腊语)。我使用:

File file = new File(file_Path);
try {
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
StringBuilder text = new StringBuilder();
while ((line = br.readLine()) != null) {
text.append(line);
}
et1.setText(text);

我得到的结果是这样的:enter image description here如果角色是英文,那就可以了。但就我而言,他们不是。我怎样才能解决这个问题?非常感谢

最佳答案

Ok, I am reading a .docx file via a BufferedReader

这是第一个问题。 BufferedReader 适用于纯文本文件。 docx 文件是特定格式的二进制文件(假设您指的是 Microsoft Word 保存的文件类型)。您不能像文本文件一样读取它们。在记事本(不是写字板)中打开该文件,您就会明白我的意思。

您可能想查看Apache POI .

来自评论:

Testing to read a .txt file with the same text gave same results too

这可能是由于使用了错误的编码。 FileReader 始终使用平台默认编码,这很烦人。假设您使用的是 Java 7 或更高版本,那么最好使用 Files.newBufferedReader :

try (BufferedReader reader = Files.newBufferedReader(path, StandardCharsets.UTF_8)) {
...
}

当然,调整字符集以匹配您保存文本文件时使用的字符集 - 如果您可以选择使用 UTF-8,那是一个不错的选择。 (除了其他任何东西,几乎所有东西都可以处理 UTF-8。)

关于java - BufferedReader,读取编辑文本中的字符给出奇怪的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24684004/

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