本文目錄一覽:
java String字元串轉UTF-8 hexcode怎麼轉?
String s=new String(“欲轉換字元串”.getBytes(),”utf-8″);
String s=new String(“欲轉換字元串”.getBytes(“utf-8″),”utf-8”);
其中
s.getBytes(“UTF-8”);
的意思是以UTF-8的編碼取得位元組
new String(XXX,”UTF-8″);
的意思是以UTF-8的編碼生成字元串
java字元串轉16進位
1、寫轉換函數是必須的,目前Jdk中無現有類。
2、在不同的字元編碼當中,漢字的對應的數值或者說編碼值不一樣,像GBK、Unicode肯定是不一樣的。以Java默認的Unicode為例說明問題。
3、 一,得到字元串,
二,遍歷每個字元,用char來接收,實為int值,或直接用int也可以。
三,Integer.toHexString(每個字元對應的int值);
四,前綴加個「0x」就可以了。
4、如果是其它類型的話,找到對應的字元和數值對應表就可以了。
不知可否解決問題了。
java hex 字元串怎麼轉換
private static String hexString = “0123456789ABCDEF”;
public static void main(String[] args) {
System.out.println(encode(“中文”));
System.out.println(decode(encode(“中文”)));
}
/*
* 將字元串編碼成16進位數字,適用於所有字元(包括中文)
*/
public static String encode(String str) {
// 根據默認編碼獲取a href=”;tn=44039180_cprfenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1Ydn1D4nWDvuWN9mvRvnWDv0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EnHT4rjR3n101njc4PHnLrHTYPs” target=”_blank” class=”baidu-highlight”位元組數組/a
byte[] bytes = str.getBytes();
StringBuilder sb = new StringBuilder(bytes.length * 2);
// 將a href=”;tn=44039180_cprfenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1Ydn1D4nWDvuWN9mvRvnWDv0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6KdThsqpZwYTjCEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-TLwGUv3EnHT4rjR3n101njc4PHnLrHTYPs” target=”_blank” class=”baidu-highlight”位元組數組/a中每個位元組拆解成2位16進位整數
for (int i = 0; i bytes.length; i++) {
sb.append(hexString.charAt((bytes[i] 0xf0) 4));
sb.append(hexString.charAt((bytes[i] 0x0f) 0));
}
return sb.toString();
}
/*
* 將16進位數字解碼成字元串,適用於所有字元(包括中文)
*/
public static String decode(String bytes) {
ByteArrayOutputStream baos = new ByteArrayOutputStream(bytes.length() / 2);
// 將每2位16進位整數組裝成一個位元組
for (int i = 0; i bytes.length(); i += 2)
baos.write((hexString.indexOf(bytes.charAt(i)) 4 | hexString
.indexOf(bytes.charAt(i + 1))));
return new String(baos.toByteArray());
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/249347.html