gpt4 book ai didi

java - 读写带有重音符号的文件

转载 作者:行者123 更新时间:2023-12-02 04:19:17 26 4
gpt4 key购买 nike

我有一个 XML 格式的输入文件,它的格式良好,重音符号写得很好。该文件是使用运行良好的 PHP 脚本创建的。但是,当我读取 XML 文件并使用 Java 程序将其写入另一个 XML 时,它会放置奇怪的字符而不是带重音符号的字符。

这是读取 XML 文件的方法:

public static String getArchivo(FileInputStream fileinputstream)
{
String s = null;
try
{
byte abyte0[] = new byte[1024];
int i = fileinputstream.read(abyte0);
if(i != -1)
{
s = new String(abyte0, 0, i);
for(int j = fileinputstream.read(abyte0); j != -1; j = fileinputstream.read(abyte0))
{
s = s + new String(abyte0, 0, j);
}

}
}
catch(IOException ioexception)
{
s = null;
}
return s;
}

由于文件是逐字节读取的,如何将“坏”字节替换为重音字符的正确字节?如果逐字节读取这样的文件不是一个好主意,我怎样才能做得更好?

我需要的字符是:á、é、í、ó、ú、Á、É、Í、Ó、Ú、ñ、Ñ 和 °。

提前致谢

最佳答案

您可能正在使用 UTF-8 字符集读取文件。特殊字符不属于 UTF-8 字符集。从 UTF-8 更改为 UTF-16

类似于

InputStream in = ...
InputSource is = new InputSource(new InputStreamReader(in, "utf-16"));
<小时/>

正如 Jordi 正确所说,utf-8 之外没有特殊字符。因此,请将第一部分视为其他特殊字符的信息。

深入查看您的代码,我发现您读取了一个 int 并将其转换为 String。不要转换它。读取字节和写入字节以确保数据不会改变。

关于java - 读写带有重音符号的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32973937/

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