import java.util.*; import java.io.*; public class Convert { public static void main(String[] args) throws IOException { if(args.length == 0) { System.out.println("Provide filesnames on commandline"); return; } for(int i=0; i < args.length; i++) { convert(args[i]); } } private static void convert(String filename) throws IOException { File one = new File(filename); if(! one.exists()) return; File two = new File(filename +"~"); int count=1; while(two.exists()) { two = new File(filename + String.valueOf(count++) +"~"); } Reader reader = new InputStreamReader(new FileInputStream(one), "ISO-8859-1"); Writer writer = new FileWriter(two); try { while(true) { int character = reader.read(); if(character == -1) break; if(character < 128) writer.write((char) character); else { writer.write("\\u"); String val = Integer.toString((int) ((char) character), 16); for(int i=4; i > val.length(); i--) writer.write("0"); writer.write(val); } } } catch(IOException e) { two.delete(); } finally { reader.close(); writer.close(); } } }