88 lines
2.4 KiB
Java
88 lines
2.4 KiB
Java
package com.ruoyi.common.support;
|
||
|
||
import java.nio.charset.Charset;
|
||
import java.nio.charset.StandardCharsets;
|
||
import com.ruoyi.common.utils.StringUtils;
|
||
|
||
/**
|
||
* 字符集工具类
|
||
*
|
||
* @author ruoyi
|
||
*
|
||
*/
|
||
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)
|
||
{
|
||
srcCharset = 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();
|
||
}
|
||
}
|