• java将字符串转换为指定编码的16进制字符串,将该16进制字符串转换为byte数组


    最近开发任务是和摄像机彩屏进行通讯。在进行串口通讯时需要传输byte数组,而当内容为中文时需要指定GBK编码,否则会乱码。所以总结下这两个java方法。

     1     /**
     2      * 将字符串转为指定编码的16进制
     3      *
     4      * @param str
     5      * @return
     6      */
     7     public static String encode(String str) throws Exception {
     8         String hexString = "0123456789ABCDEF";
     9         //根据编码获取字节数组
    10         byte[] bytes = str.getBytes("GBK");
    11         StringBuilder sb = new StringBuilder(bytes.length * 2);
    12         //将字节数组中每个字节拆解成2位16进制整数
    13         for (int i = 0; i < bytes.length; i++) {
    14             sb.append(hexString.charAt((bytes[i] & 0xf0) >> 4));
    15             sb.append(hexString.charAt((bytes[i] & 0x0f) >> 0));
    16         }
    17         return sb.toString();
    18     }
     1     /**
     2      * 将16进制字符串转换为byte[]
     3      *
     4      * @param str
     5      * @return
     6      */
     7     public static byte[] toBytes(String str) {
     8         if (str == null || str.trim().equals("")) {
     9             return new byte[0];
    10         }
    11 
    12         byte[] bytes = new byte[str.length() / 2];
    13         for (int i = 0; i < str.length() / 2; i++) {
    14             String subStr = str.substring(i * 2, i * 2 + 2);
    15             bytes[i] = (byte) Integer.parseInt(subStr, 16);
    16         }
    17 
    18         return bytes;
    19     }
  • 相关阅读:
    Dictionary(二)
    LoveTao项目源码共享
    小功能天气预报
    对XML的收集3
    小小练习:对XML的处理
    对XML的收集4
    对XML的收集2
    小小练习:测试获取用户信息接口
    大学生免费自学各种技术网址大全 不要再报班了
    DevComponents.AdvTree 相关笔记
  • 原文地址:https://www.cnblogs.com/lujiannt/p/9237307.html
Copyright © 2020-2023  润新知