本文目錄一覽:
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-hant/n/249347.html