來源地址:https://blog.csdn.net/qq_31384551/article/details/81627840
一個byte數組,byte[] buf,是由一個字符串轉換來的,如何判斷字符串使用的是什麼編碼?
Mozilla的一個組件提供了相應功能:
jar包下載地址:http://maven.outofmemory.cn/com.googlecode.juniversalchardet/juniversalchardet/1.0.3/
maven引用:
<dependency>
<groupId>com.googlecode.juniversalchardet</groupId>
<artifactId>juniversalchardet</artifactId>
<version>1.0.3</version>
</dependency>
調用代碼:
public static String guessEncoding(byte[] bytes) {
String DEFAULT_ENCODING = "UTF-8";
org.mozilla.universalchardet.UniversalDetector detector =
new org.mozilla.universalchardet.UniversalDetector(null);
detector.handleData(bytes, 0, bytes.length);
detector.dataEnd();
String encoding = detector.getDetectedCharset();
detector.reset();
if (encoding == null) {
encoding = DEFAULT_ENCODING;
}
return encoding;
}