package com.jcdm.common.core.text; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import com.jcdm.common.utils.StringUtils; /** * å—符集工具类 * * @author jc */ public class CharsetKit { /** ISO-8859-1 */ public static final String ISO_8859_1 = "ISO-8859-1"; /** UTF-8 */ public static final String UTF_8 = "UTF-8"; /** GBK */ public static final String GBK = "GBK"; /** ISO-8859-1 */ public static final Charset CHARSET_ISO_8859_1 = Charset.forName(ISO_8859_1); /** UTF-8 */ public static final Charset CHARSET_UTF_8 = Charset.forName(UTF_8); /** GBK */ public static final Charset CHARSET_GBK = Charset.forName(GBK); /** * 转æ¢ä¸ºCharset对象 * * @param charset å—符集,为空则返回默认å—符集 * @return Charset */ public static Charset charset(String charset) { return StringUtils.isEmpty(charset) ? Charset.defaultCharset() : Charset.forName(charset); } /** * 转æ¢å—符串的å—符集编ç * * @param source å—符串 * @param srcCharset æºå—符集,默认ISO-8859-1 * @param destCharset ç›®æ ‡å—符集,默认UTF-8 * @return 转æ¢åŽçš„å—符集 */ public static String convert(String source, String srcCharset, String destCharset) { return convert(source, Charset.forName(srcCharset), Charset.forName(destCharset)); } /** * 转æ¢å—符串的å—符集编ç * * @param source å—符串 * @param srcCharset æºå—符集,默认ISO-8859-1 * @param destCharset ç›®æ ‡å—符集,默认UTF-8 * @return 转æ¢åŽçš„å—符集 */ public static String convert(String source, Charset srcCharset, Charset destCharset) { if (null == srcCharset) { srcCharset = StandardCharsets.ISO_8859_1; } if (null == destCharset) { destCharset = StandardCharsets.UTF_8; } if (StringUtils.isEmpty(source) || srcCharset.equals(destCharset)) { return source; } return new String(source.getBytes(srcCharset), destCharset); } /** * @return 系统å—符集编ç */ public static String systemCharset() { return Charset.defaultCharset().name(); } }