You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
86 lines
2.4 KiB
86 lines
2.4 KiB
package com.ruoyi.common.core.text; |
|
|
|
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) |
|
{ |
|
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(); |
|
} |
|
}
|
|
|