JAVA String--16进制 转换

来源:互联网 发布:用手充电软件下载 编辑:程序博客网 时间:2024/05/20 16:42

有时候在传值的时候  如果有中文 极有可能出现乱码 并且直接传中文是不专业的 一般都是转换后再传

源码贴  直接用

import java.io.ByteArrayOutputStream;public class StringTo16 {/* * 16进制数字字符集 */private static String hexString = "0123456789ABCDEF";/* * 将字符串编码成16进制数字,适用于所有字符(包括中文) */public static String encode(String str) {// 根据默认编码获取字节数组byte[] bytes = str.getBytes();StringBuilder sb = new StringBuilder(bytes.length * 2);// 将字节数组中每个字节拆解成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());}}
请叫我雷叔叔

0 0
原创粉丝点击