private static boolean isRFC5987AttrChar(byte c) {
        return (c >= '0' && c <= '9') || (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') ||
                    c == '!' || c == '#' || c == '$' || c == '&' || c == '+' || c == '-' ||
                    c == '.' || c == '^' || c == '_' || c == '`' || c == '|' || c == '~';
    }
Decode the given header field param as described in RFC 5987.
<p>Only the US-ASCII, UTF-8 and ISO-8859-1 charsets are supported.
@param filename the filename
@param charset the charset for the filename
@return the encoded header field param
@see <a href="https://tools.ietf.org/html/rfc5987">RFC 5987</a>
manager/api/rest-impl/src/main/java/io/apiman/manager/api/rest/impl/util/ContentDisposition.java