guava/src/com/google/common/net/MediaType.java
public MediaType withCharset(Charset charset) {
    checkNotNull(charset);
    MediaType withCharset = withParameter(CHARSET_ATTRIBUTE, charset.name());
    // precache the charset so we don't need to parse it
    withCharset.parsedCharset = Optional.of(charset);
    return withCharset;
  }
public MediaType withCharset(Charset charset) {
    checkNotNull(charset);
    MediaType withCharset = withParameter(CHARSET_ATTRIBUTE, charset.name());
    // precache the charset so we don't need to parse it
    withCharset.parsedCharset = Optional.of(charset);
    return withCharset;
  }
public MediaType withCharset ( Charset charset ) { checkNotNull ( charset ) ; MediaType withCharset = withParameter ( CHARSET_ATTRIBUTE , charset . name ( ) ) ; // precache the charset so we don't need to parse it withCharset . parsedCharset = Optional . of ( charset ) ; return withCharset ; }
Returns a new instance with the same type and subtype as this instance, with the {@code
charset} parameter set to the {@link Charset#name name} of the given charset. Only one {@code
charset} parameter will be present on the new instance regardless of the number set on this
one.

<p>If a charset must be specified that is not supported on this JVM (and thus is not
representable as a {@link Charset} instance, use {@link #withParameter}.
Returns a new instance with the same type and subtype as this instance with the { @code charset } parameter set to the { @link Charset#name name } of the given charset . Only one { @code charset } parameter will be present on the new instance regardless of the number set on this one .