private static void encode(String word, OutputStream out) throws UnsupportedEncodingException, IOException {
        byte bytes[] = word.getBytes("UTF-8");
        int len = bytes.length;
        if (len < 0x80) {
            out.write(len);
        } else if (len < 0x4000) {
            len = len | 0x8000;
            out.write(len >> 8);
            out.write(len);
        } else if (len < 0x20000) {
            len = len | 0xC00000;
            out.write(len >> 16);
            out.write(len >> 8);
            out.write(len);
        } else if (len < 0x10000000) {
            len = len | 0xE0000000;
            out.write(len >> 24);
            out.write(len >> 16);
            out.write(len >> 8);
            out.write(len);
        } else {
            out.write(0xF0);
            out.write(len >> 24);
            out.write(len >> 16);
            out.write(len >> 8);
            out.write(len);
        }
        out.write(bytes);
    }
private static void encode ( String word , OutputStream out ) throws UnsupportedEncodingException , IOException { byte bytes [ ] = word . getBytes ( "UTF-8" ) ; int len = bytes . length ; if ( len < 0x80 ) { out . write ( len ) ; } else if ( len < 0x4000 ) { len = len | 0x8000 ; out . write ( len > > 8 ) ; out . write ( len ) ; } else if ( len < 0x20000 ) { len = len | 0xC00000 ; out . write ( len > > 16 ) ; out . write ( len > > 8 ) ; out . write ( len ) ; } else if ( len < 0x10000000 ) { len = len | 0xE0000000 ; out . write ( len > > 24 ) ; out . write ( len > > 16 ) ; out . write ( len > > 8 ) ; out . write ( len ) ; } else { out . write ( 0xF0 ) ; out . write ( len > > 24 ) ; out . write ( len > > 16 ) ; out . write ( len > > 8 ) ; out . write ( len ) ; } out . write ( bytes ) ; }
encode text using Mikrotik's encoding scheme and write it to an output
stream.