一、字符串轉字節數組
String str = "金燦燦";
byte[] bytes = str.getBytes();
如果轉換的時候不設置編碼格式,默認是以環境的字符集編碼。
1.utf-8 : byte[] bytes = str.getBytes("utf-8");//中文是占三個字節
2.gbk : byte[] bytes = str.getBytes("gbk");//中文是占兩個字節
二、字節數組轉字符串
1.utf-8 : String s = new String(bytes ,"utf-8");
2.gbk : String s = new String(bytes ,"gbk");
三、將一個字符串轉為定長的報文
設置一個JSONObject paramJson;
//參數key
String name="payName";
//參數定長
String len="10";
int bytelength = 0;
int strlength = JSONPath.eval(paramJson,"$."+name).toString().length();
try {
bytelength = JSONPath.eval(paramJson,"$."+name).toString().getBytes("GBK").length;
} catch (UnsupportedEncodingException e) {
log.error("字符串轉字節數組失敗:",e);
rspJson.put("status","0");
rspJson.put("errorMessage","字符串轉字節數組失敗");
return rspJson;
}
if(bytelength != 0 && bytelength < Integer.valueOf(len)){
int ll = Integer.valueOf(len)-bytelength;
body+=String.format("%1$-"+strlength+"s", JSONPath.eval(paramJson,"$."+name));
body+=String.format("%1$-"+ll+"s","");
}else if(bytelength > Integer.valueOf(len)){
log.error(name+":"+JSONPath.eval(paramJson,"$."+name).toString()+"_該字段長度大於報文規定長度:"+Integer.toString(bytelength)+">" +len);
rspJson.put("status","0");
rspJson.put("errorMessage",name+"字段長度大於報文規定長度");
return rspJson;
}else{
body+=String.format("%1$-"+Integer.valueOf(len)+"s", JSONPath.eval(paramJson,"$."+name));
}