java utf8转gbk,再将转换后的数据转成16进制字符串

嘿!铁柱 2020-09-12 07:11:40
utf8转gbk,再将转换后的数据转成16进制字符串。如冷库房12 - C0E4BFE2B7BF3132
求助各位大佬
...全文
2555 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
临世驻年 2020-10-12
  • 打赏
  • 举报
回复
很简单,写两个通用方法,转换就行了
OPPPPOP 2020-09-14
  • 打赏
  • 举报
回复
是不是现在的字节码是UTF8的,然后需要转为GBK字节的HEX码? 那就String s = new String(utf8字节, "UTF-8") byte[] b = s.getBytes("GBK") 然后将每个byte转为两个HEX就可以了;
tianfang 2020-09-13
  • 打赏
  • 举报
回复
提示:两步做 字符串的字符集转换 字符串的二进制数组,转16进制字符
li905663280 2020-09-13
  • 打赏
  • 举报
回复

public static String string2HexString(String str, String charName) {
        char[] chars = "0123456789ABCDEF".toCharArray();
        StringBuilder sb = new StringBuilder("");
        byte[] bs = str.getBytes(Charset.forName(charName));
        int bit;
        for (int i = 0; i < bs.length; i++) {
            bit = (bs[i] & 0x0f0) >> 4;
            sb.append(chars[bit]);
            bit = bs[i] & 0x0f;
            sb.append(chars[bit]);
            // sb.append(' ');
        }
        return sb.toString().trim();
    }

public static String Hex2String(String source, String charName) throws Exception {
        source = source.toUpperCase();
        int sourceLen = source.length();
        char[] sourcechars = source.toCharArray();
        String hexDigital = "0123456789ABCDEF";
        byte[] resultBytes = new byte[(sourceLen) / 2];
        //3 循环老的字符串 依次将2位转成1位
        int n;
        for (int i = 0; i < resultBytes.length; i++) {
            n = hexDigital.indexOf(sourcechars[i * 2]) * 16 + hexDigital.indexOf(sourcechars[2 * i + 1]);

            resultBytes[i] = (byte) (n & 0xff);
        }
        return new String(resultBytes, Charset.forName(charName));
    }

    public static void main(String[] args) throws Exception {
        String hexStr = BytesUtil.string2HexString("冷库房12", "gbk");
        System.out.println(hexStr);
        String oldStr = BytesUtil.Hex2String(hexStr, "gbk");
        System.out.println("获得原始值为:" + oldStr);
    }

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧