|
@@ -3,9 +3,11 @@ package com.zhili.zkstationserver.util;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
|
import java.io.UnsupportedEncodingException;
|
|
import java.io.UnsupportedEncodingException;
|
|
|
|
+import java.nio.charset.StandardCharsets;
|
|
import java.time.LocalDateTime;
|
|
import java.time.LocalDateTime;
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.time.format.DateTimeFormatter;
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
|
|
+import java.util.Arrays;
|
|
import java.util.Calendar;
|
|
import java.util.Calendar;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
|
|
|
|
@@ -57,6 +59,7 @@ public class BytesUtil {
|
|
|
|
|
|
public static String parseStringFromGb2312Bytes(byte[] bytes){
|
|
public static String parseStringFromGb2312Bytes(byte[] bytes){
|
|
try{
|
|
try{
|
|
|
|
+ //System.out.println("------------------"+BytesUtil.bytesToHexString(bytes));
|
|
String gb2312Str = new String(bytes, "gb2312");
|
|
String gb2312Str = new String(bytes, "gb2312");
|
|
return gb2312Str.substring(0,gb2312Str.indexOf((char)0));
|
|
return gb2312Str.substring(0,gb2312Str.indexOf((char)0));
|
|
}catch (Exception e){
|
|
}catch (Exception e){
|
|
@@ -64,6 +67,33 @@ public class BytesUtil {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ //将16进制数转换为汉字
|
|
|
|
+ public static String deUnicode(byte[] bytes){
|
|
|
|
+ System.out.println("------------------"+BytesUtil.bytesToHexString(bytes));
|
|
|
|
+ String content = BytesUtil.bytesToHexStringNew(bytes);
|
|
|
|
+ String enUnicode=null;
|
|
|
|
+ String deUnicode=null;
|
|
|
|
+ for(int i=0;i<content.length();i++){
|
|
|
|
+ if(enUnicode==null){
|
|
|
|
+ enUnicode=String.valueOf(content.charAt(i));
|
|
|
|
+ }else{
|
|
|
|
+ enUnicode=enUnicode+content.charAt(i);
|
|
|
|
+ }
|
|
|
|
+ if(i%4==3){
|
|
|
|
+ if(enUnicode!=null){
|
|
|
|
+ if(deUnicode==null){
|
|
|
|
+ deUnicode=String.valueOf((char)Integer.valueOf(enUnicode, 16).intValue());
|
|
|
|
+ }else{
|
|
|
|
+ deUnicode=deUnicode+String.valueOf((char)Integer.valueOf(enUnicode, 16).intValue());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ enUnicode=null;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ return deUnicode.substring(0,deUnicode.indexOf((char)0));
|
|
|
|
+ }
|
|
|
|
+
|
|
public static String parseString(byte[] b) {
|
|
public static String parseString(byte[] b) {
|
|
StringBuilder sb = new StringBuilder();
|
|
StringBuilder sb = new StringBuilder();
|
|
for (int i = 0; i < b.length; i++) {
|
|
for (int i = 0; i < b.length; i++) {
|
|
@@ -74,6 +104,29 @@ public class BytesUtil {
|
|
return k>=0?rawString.substring(0, k):rawString;
|
|
return k>=0?rawString.substring(0, k):rawString;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 显示0的字符串
|
|
|
|
+ * @param b
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public static String parseStringZero(byte[] b) {
|
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
|
+ for (int i = 0; i < b.length; i++) {
|
|
|
|
+ sb.append((char) b[i]);
|
|
|
|
+ }
|
|
|
|
+ String rawString = sb.toString();
|
|
|
|
+ int k = rawString.indexOf(0);
|
|
|
|
+ if(k==0){
|
|
|
|
+ String res = Arrays.toString(b);
|
|
|
|
+ res = StringUtils.strip(res,"[]") //去掉两边括号
|
|
|
|
+ .replaceAll(",","")
|
|
|
|
+ .replaceAll("\\s*","");//去掉空格
|
|
|
|
+ return res;
|
|
|
|
+ }
|
|
|
|
+ return k>=0?rawString.substring(0, k):rawString;
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
public static byte[] fromString(String s, int len, byte fill) {
|
|
public static byte[] fromString(String s, int len, byte fill) {
|
|
byte[] res = new byte[len];
|
|
byte[] res = new byte[len];
|
|
for (int i = 0; i < s.length(); i++) {
|
|
for (int i = 0; i < s.length(); i++) {
|
|
@@ -210,6 +263,22 @@ public class BytesUtil {
|
|
return sb.toString();
|
|
return sb.toString();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ public static String bytesToHexStringNew(byte[] src){
|
|
|
|
+ StringBuilder stringBuilder = new StringBuilder("");
|
|
|
|
+ if (src == null || src.length <= 0) {
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
|
|
+ for (int i = 0; i < src.length; i++) {
|
|
|
|
+ int v = src[i] & 0xFF;
|
|
|
|
+ String hv = Integer.toHexString(v);
|
|
|
|
+ if (hv.length() < 2) {
|
|
|
|
+ stringBuilder.append(0);
|
|
|
|
+ }
|
|
|
|
+ stringBuilder.append(hv);
|
|
|
|
+ }
|
|
|
|
+ return stringBuilder.toString();
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* description: 字符串转 Unicode --- 原生方法
|
|
* description: 字符串转 Unicode --- 原生方法
|
|
*
|
|
*
|