public static String parseString(byte[] data, int offset, int length) {

        if(data.length < offset + length)
            throw new IllegalArgumentException("Not enough bytes for Reading an String of length " + length + " at " + offset);

        StringBuilder b = new StringBuilder("");

        boolean endReached = false;

        for(int i = offset; i < offset + length; i++) {
            if(!endReached && data[i] == 0) {
                endReached = true;
            } else if(endReached && data[i] != 0) {
                throw new IllegalArgumentException("Can't parse String of length " + length + " at " + offset + " invalid char at index " + (i - offset));
            } else if(!endReached) {
                b.append((char) (data[i] & 0xFF));
            }
        }
        
        // Ignoriere den Fall, dass alle Zeichen für den String genutzt wurden
        /*
        if(!endReached) {
            throw new IllegalArgumentException("Can't parse String of length " + length + " at " + offset + " too many characters. Already read 100 chars: "+b.toString());
        }
         */
        
        return b.toString();
    }