public static String decodeFileName(String name) throws InvalidNameException { try { String r = Punycode.decode(name); r = r.replace((char)('\ue200' + '.'), '.'); r = r.replace((char)('\ue200' + '\\'), '\\'); r = r.replace((char)('\ue200' + '/'), '/'); r = r.replace((char)('\ue200' + '"'), '"'); r = r.replace((char)('\ue200' + '<'), '<'); r = r.replace((char)('\ue200' + '>'), '>'); r = r.replace((char)('\ue200' + '|'), '|'); r = r.replace((char)('\ue200' + '?'), '?'); r = r.replace((char)('\ue200' + '*'), '*'); r = r.replace((char)('\ue200' + ':'), ':'); r = r.replace((char)('\ue200' + '-'), '-'); return r; } catch (PunycodeException ex) { throw new InvalidNameException(ex); } }