字符串和字節數組的轉換的字符集


一、字符串轉字節數組

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));
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM