У меня есть входной файл в формате XML и он хорошо сформирован, с хорошо написанными акцентами. Файл создается с помощью PHP-скрипта, который отлично работает. Но когда я читаю XML-файл и записываю его в другой XML, используя программу Java, он помещает странные символы вместо символов с акцентами.Чтение и запись файлов с акцентами
Это метод, который считывает 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 (или любой многобайтовая кодировке символов), код будет ломаться, несмотря ни на что, потому что он полагается на преобразование произвольно длинного байтового массива в char, который может разбивать несколько байтов одного символа на несколько границ. – GPI
В этом случае, что является лучшим способом сделать это? – mrcoar
http://stackoverflow.com/q/28969941/2131074 – GPI