校验字符串编码工具类
知识点
校验编码:str.equals(new String(str.getBytes(), encode))
系统默认编码:System.getProperty("file.encoding")
系统默认字符编码:Charset.defaultCharset()
系统默认语言编码:System.getProperty("user.language")
效果图
Java代码
package base.util;
import java.nio.charset.Charset;
/**
* @author 马家立
* @version 创建时间:2019年12月7日下午5:47:49
* @Description: 校验字符串编码工具类
*/
public class EncodingUtil {
/**
* @Title:getEncoding
* @author:马家立
* @date:2019年12月7日 下午6:02:27
* @Description: 校验字符串编码
* @param str--待识别编码的字符串
* @return String
*/
public static String getEncoding(String str) {
String encode = "未识别编码格式";
try {
encode = "UTF-16";
if (str.equals(new String(str.getBytes(), encode))) {
return encode;
}
encode = "UTF-8";
if (str.equals(new String(str.getBytes(), encode))) {
return encode;
}
encode = "ASCII";
if (str.equals(new String(str.getBytes(), encode))) {
return "字符串<< " + str + " >>中仅由数字和英文字母组成,无法识别其编码格式";
}
encode = "ISO-8859-1";
if (str.equals(new String(str.getBytes(), encode))) {
return encode;
}
encode = "GB2312";
if (str.equals(new String(str.getBytes(), encode))) {
return encode;
}
} catch (Exception e) {
e.printStackTrace();
}
return encode;
}
/**
* @Title:isEncoding
* @author:马家立
* @date:2019年12月7日 下午6:12:17
* @Description: 校验字符串是否是传入参数编码
* @param str--待校验的字符串
* @param encode--字符编码:UTF-16,UTF-8,ASCII,ISO-8859-1,GB2312等
* @return boolean
*/
public static boolean isEncoding(String str, String encode) {
try {
if (str.equals(new String(str.getBytes(), encode))) {
return true;
} else {
return false;
}
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
public static void main(String[] args) {
/**
* --测试字符串编码
*/
System.out.println("系统默认编码:" + System.getProperty("file.encoding"));
System.out.println("系统默认字符编码:" + Charset.defaultCharset());
System.out.println("系统默认语言编码:" + System.getProperty("user.language"));
String hello = "hello, 我来了!";
System.out.println("'hello, 我来了!'的编码是:" + getEncoding(hello));
/**
* --校验字符串编码
*/
String str = "校验编码是否是UTF8";
// 校验字符串是否是UTF-8
boolean utf8Flag = isEncoding(str, "UTF-8");
if (utf8Flag) {
System.out.println("该字符串是UTF-8");
} else {
System.out.println("该字符串不是UTF-8");
}
}
}