code: public static SortedMap<String, Charset> availableCharsets() {
          // Start with a copy of the built-in charsets...
          @SuppressWarnings("unchecked")
          TreeMap<String, Charset> charsets = new TreeMap<String, Charset>(String.CASE_INSENSITIVE_ORDER);
          for (String charsetName : IOSCharset.getAvailableCharsetNames()) {
              Charset charset = IOSCharset.charsetForName(charsetName);
              charsets.put(charset.name(), charset);
          }
          return Collections.unmodifiableSortedMap(charsets);
      }
docs: Returns an immutable case-insensitive map from canonical names to {@code Charset} instances.
  If multiple charsets have the same canonical name, it is unspecified which is returned in
  the map. This method may be slow. If you know which charset you're looking for, use
  {@link #forName}.
  @return an immutable case-insensitive map from canonical names to {@code Charset} instances