package com.jyc.common.core.text;

import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import com.jyc.common.utils.StringUtils;

/**
* 字符集工具类
*
* @author jianyongchao
*/
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 系统字符集编码
*/

相关文章:

  • 2021-07-25
  • 2021-05-18
  • 2022-12-23
  • 2021-10-03
  • 2021-12-22
  • 2021-11-13
  • 2021-07-28
  • 2021-08-16
猜你喜欢
  • 2022-12-23
  • 2022-02-12
  • 2021-06-16
  • 2022-12-23
  • 2021-11-13
  • 2021-07-02
相关资源
相似解决方案