import java.io.*; public class XMLEncoding { public static void main(String[] args) throws FileNotFoundException, IOException { File datei = new File("utf-8.xml"); FileReader leser = new FileReader(datei); StringBuffer sequenz = new StringBuffer(100); String encoding = ""; boolean schalter = false; for(;;){ int gelesenInt = leser.read(); if(gelesenInt == -1 || gelesenInt == 62){break;} sequenz.append((char)gelesenInt); } try{ encoding = sequenz.substring(30, sequenz.length()-2); } catch (StringIndexOutOfBoundsException e){ schalter = true; } if(schalter){ encoding = "UTF-8"; FileInputStream byteleser = new FileInputStream(datei); byte[] barray = new byte[2]; // ersten beiden Bytes einlesen byteleser.read(barray); if(barray[0] == 0x00 && barray[1] == 0x3c){ encoding = "UTF-16BE"; } if(barray[0] == 0x3c && barray[1] == 0x00){ encoding = "UTF-16LE"; } } System.out.println(encoding); } }