gpt4 book ai didi

java - 读取文件并写入具有 UTF-8(不同语言)字符的文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:25:33 36 4
gpt4 key购买 nike

i有一个字符的文件,例如:“joh 1:1ஆதியிலேவார்த்தை,அந்த,அந்த,அந்ததேவனாயிருந்தது。”

www.unicode.org/charts/PDF/U0B80.pdf

当我使用下面的代码时:

bufferedWriter = new BufferedWriter (new OutputStreamWriter(System.out, "UTF8"));

输出是盒子和其他像这样的奇怪字符:

"��P��^����O֛����;��

有人能帮忙吗?

这些是完整的代码:

File f=new File("E:\\bible.docx");
Reader decoded=new InputStreamReader(new FileInputStream(f), StandardCharsets.UTF_8);
bufferedWriter = new BufferedWriter (new OutputStreamWriter(System.out, StandardCharsets.UTF_8));
char[] buffer = new char[1024];
int n;
StringBuilder build=new StringBuilder();
while(true){
n=decoded.read(buffer);
if(n<0){break;}
build.append(buffer,0,n);
bufferedWriter.write(buffer);
}

enter image description here

StringBuilder 值显示 UTF 字符,但在窗口中显示时显示为框。

找到问题的答案!!! 编码正确(即 UTF-8)Java 将文件读取为 UTF-8,字符串字符为 UTF-8,问题是没有字体可以在 netbeans 的输出面板中显示它。更改输出面板的字体后(Netbeans->tools->options->misc->output 选项卡)我得到了预期的结果。在JTextArea中显示时同理(需要更改字体)。但是我们无法更改 Windows 的 cmd 提示符的字体。

最佳答案

因为你的输出是用UTF-8编码的,但仍然包含替换字符(U+FFFD, �),我相信你读取数据时会出现问题。

确保您知道输入流使用的编码方式,并据此设置 InputStreamReader 的编码方式。如果那是泰米尔语,我猜它可能是 UTF-8 格式的。我不知道 Java 是否支持 TACE-16。它看起来像这样……

StringBuilder buffer = new StringBuilder();
try (InputStream encoded = ...) {
Reader decoded = new InputStreamReader(encoded, StandardCharsets.UTF_8);
char[] buffer = new char[1024];
while (true) {
int n = decoded.read(buffer);
if (n < 0)
break;
buffer.append(buffer, 0, n);
}
}
String verse = buffer.toString();

关于java - 读取文件并写入具有 UTF-8(不同语言)字符的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17985026/

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