//汉字转化为16进制
String strInput ="湖北武汉";
StringBuffer output = new StringBuffer();
System.out.println("""+strInput+ "" 的utf8编码:");
for (int i = 0; i < strInput.length(); i++)
{
output.append("\u" +Integer.toString(strInput.charAt(i), 16));
}
System.out.println(output);//输出结果为:u6e56u5317u6b66u6c49
//16进制转换成汉字
String str="u6e56u5317u6b66u6c49";//这个16进制的汉字为“湖北武汉”
//根据默认编码获取字节数组
byte[] bytes=str.getBytes();
StringBuilder sb=new StringBuilder(bytes.length*2);
//将字节数组中每个字节拆解成2位16进制整数
for(int i=0;i>4));
sb.append(hexString.charAt((bytes[i]&0x0f)>>0));
}
System.out.println(sb.toString()+"-------------" ); //输出结果为: E6B996E58C97E6ADA6E6B189-------------
System.out.println(decode(sb.toString())+"************");//输出结果为:湖北武汉************
public static String decode(String bytes)
{
ByteArrayOutputStream baos=new ByteArrayOutputStream(bytes.length()/2);
//将每2位16进制整数组装成一个字节
for(int i=0;i