Java String Encode by Charset getEncoder(Charset charset)

Here you can find the source of getEncoder(Charset charset)

Description

Returns a cached thread-local CharsetEncoder for the specified charset.

License

Open Source License

Declaration

public static CharsetEncoder getEncoder(Charset charset) 

Method Source Code


//package com.java2s;
//License from project: Open Source License 

import java.nio.charset.Charset;

import java.nio.charset.CharsetEncoder;
import java.nio.charset.CodingErrorAction;
import java.util.IdentityHashMap;
import java.util.Map;

public class Main {
    private static final ThreadLocal<Map<Charset, CharsetEncoder>> encoders = new ThreadLocal<Map<Charset, CharsetEncoder>>() {
        @Override/*  ww  w .  j  av  a  2  s.  c  om*/
        protected Map<Charset, CharsetEncoder> initialValue() {
            return new IdentityHashMap<Charset, CharsetEncoder>();
        }
    };

    /**
     * Returns a cached thread-local {@link CharsetEncoder} for the specified
     * <tt>charset</tt>.
     */
    public static CharsetEncoder getEncoder(Charset charset) {
        if (charset == null) {
            throw new NullPointerException("charset");
        }

        Map<Charset, CharsetEncoder> map = encoders.get();
        CharsetEncoder e = map.get(charset);
        if (e != null) {
            e.reset();
            e.onMalformedInput(CodingErrorAction.REPLACE);
            e.onUnmappableCharacter(CodingErrorAction.REPLACE);
            return e;
        }

        e = charset.newEncoder();
        e.onMalformedInput(CodingErrorAction.REPLACE);
        e.onUnmappableCharacter(CodingErrorAction.REPLACE);
        map.put(charset, e);
        return e;
    }
}

Related

  1. encodeFormFields(final String content, final Charset charset)
  2. encodeOneChar(CharsetEncoder encoder, int uchar)
  3. encoding(final String content, final Charset charset, final boolean blankAsPlus)
  4. ensureEncodingSet(List options, Charset defaultEncoding)
  5. getEncoder(Charset charset)
  6. getEncoder(String charset)
  7. getHeader(Charset encoding)
  8. loadAsString(String locationPattern, Charset encoding)
  9. pathEncode(String path, Charset charset)