Java 16进制字符串转换成GBK字符串
问题:
现在已知有一个16进制字符串
435550D3C3D3DAD4DABDBBD2D7CFECD3A6CFFBCFA2D6D0B4E6B7C5D5DBBFDBD0C5CFA2A3ACD5DBBFDBBDF0B6EE3130302E3036
而且知道这串的字符串对应的内容是:
CUP用于在交易响应消息中存放折扣信息,折扣金额100.06
但是这个怎么对应的呢,怎么转换来的呢?
一脸问号???
慢慢看:ASCII 编码表 - 在线工具
43 对应ASCII编码的 C 字母
55 对应ASCII编码的 U 字母
50 对应ASCII编码的 P 字母3130302E3036 这一串对应的是100.06
似乎很简单是不是,实际上并不是,因为ASCII编码中没有中文,怎么去解析呢?
继续发现规律
中间那么多字符,刚好对应这么多4个字符的16进制字符串
D3C3
D3DA
D4DA
BDBB
D2D7
CFEC
D3A6
CFFB
CFA2
D6D0
B4E6
B7C5
D5DB
BFDB
D0C5
CFA2
A3AC
D5DB
BFDB
BDF0
B6EE
于是,就很自然的想到,每4个就对应一个汉字,于是去查了一下
GBK 编码表 - 在线工具

它就浓眉大眼地躺在那儿!
还真是!
所以说每4个字符就代表GBK编码一个汉字,至于为什么呢,可以去查查汉字编码的字节(汉字两个字节,字母数字是1个字节)
到这儿,似乎很简单了,就是把4个字符的字符串解析成汉字啦
工具方法:
/*** 将16进制字符串转成字符串* @param hex 类似于D3C3D3DABDBBD2D7* @return*/public static String hexStr2GBKStr(String hex) {String hexStr = "";String str = "0123456789ABCDEF"; //16进制能用到的所有字符 0-15for(int i=0;i<hex.length();i++){String s = hex.substring(i, i+1);if(s.equals("a")||s.equals("b")||s.equals("c")||s.equals("d")||s.equals("e")||s.equals("f")){s=s.toUpperCase().substring(0, 1);}hexStr+=s;}char[] hexs = hexStr.toCharArray();//toCharArray() 方法将字符串转换为字符数组。int length = (hexStr.length() / 2);//1个byte数值 -> 两个16进制字符byte[] bytes = new byte[length];int n;for (int i = 0; i < bytes.length; i++) {int position = i * 2;//两个16进制字符 -> 1个byte数值n = str.indexOf(hexs[position]) * 16;n += str.indexOf(hexs[position + 1]);// 保持二进制补码的一致性 因为byte类型字符是8bit的 而int为32bit 会自动补齐高位1 所以与上0xFF之后可以保持高位一致性//当byte要转化为int的时候,高的24位必然会补1,这样,其二进制补码其实已经不一致了,&0xff可以将高的24位置为0,低8位保持原样,这样做的目的就是为了保证二进制数据的一致性。bytes[i] = (byte) (n & 0xff);}String result = "";try {result = new String(bytes,"GBK");} catch (UnsupportedEncodingException e) {e.printStackTrace();}return result;}
测试:

完美!
码字不易,记得点赞关注哟!
相关文章:
Java 16进制字符串转换成GBK字符串
问题: 现在已知有一个16进制字符串 435550D3C3D3DAD4DABDBBD2D7CFECD3A6CFFBCFA2D6D0B4E6B7C5D5DBBFDBD0C5CFA2A3ACD5DBBFDBBDF0B6EE3130302E3036 而且知道这串的字符串对应的内容是: CUP用于在交易响应消息中存放折扣信息,折扣金额100.06 但…...
【ES6】JavaScript中的Symbol
Symbol是JavaScript中的一种特殊的、不可变的、不可枚举的数据类型。它通常用于表示一个唯一的标识符,可以作为对象的属性键,确保对象的属性键的唯一性和不可变性。 Symbol.for()是Symbol的一个方法,它用于创建一个已经注册的Symbol对象。当…...
理解React页面渲染原理,如何优化React性能?
React JSX转换成真实DOM过程 当使用React编写应用程序时,可以使用JSX语法来描述用户界面的结构。JSX是一种类似于HTML的语法,但实际上它是一种JavaScript的扩展,用于定义React元素。React元素描述了我们想要在界面上看到的内容和结构。 在运…...
数据通信——传输层TCP(可靠传输机制的滑动窗口)
引言 之前提到过拥塞问题,如果大量数据疯狂涌入,接收端无法及时处理就会导致数据丢包,从而使得通信受到干扰。之前的连续ARQ如果不加以节制,疯狂发送报文,接收端无法及时返回ACK就会导致网络瘫痪。 滑动窗口机制协议 这…...
Mycat之前世今生
如果我有一个32核心的服务器,我就可以实现1个亿的数据分片,我有32核心的服务器么?没有,所以我至今无法实现1个亿的数据分片。——MyCAT ‘s Plan 话说“每一个成功的男人背后都有一个女人”,自然MyCAT也逃脱不了这个诅…...
Linux- 重定向标准输出(stdout)和标准错误(stderr)
在Linux或Unix系统中,可以通过重定向标准输出(stdout)和标准错误(stderr)来将脚本的输出保存到一个文件中。以下是一些方法: 只重定向标准输出到文件: ./your_script.sh > output.txt这将只捕…...
PostgreSQL分区表
什么是分区表 数据库分区表将表数据分成更小的物理分片,以此提高性能、可用性、易管理性。分区表是关系型数据库中比较常见的对大表的优化方式,数据库管理系统一般都提供了分区管理,而业务可以直接访问分区表而不需要调整业务架构,…...
android framework之Applicataion启动流程分析(二)
上一篇讲了Zygote是如何收到启动Application的启动消息,并一步步进入Fork(),下面来分析zygote fork启动application后,application进程后续处理操作,是如何真正的启动的。 ZygoteInit.main():-->...caller ZygoteServer.runSelectLoop()…...
django静态文件无法访问解决方案
nginx配置如下: # For more information on configuration, see: # * Official English Documentation: http://nginx.org/en/docs/ # * Official Russian Documentation: http://nginx.org/ru/docs/user nginx; worker_processes auto; error_log /var/log/ng…...
WIndows 配置多版本python环境,非常清晰明了
配置多个python环境 下面以配置三个python版本环境为例子 首先下载好三个环境的python,如:python2.7、python3.6、python3.10 给个官网链接自己下,想要几版本就下几:https://www.python.org/downloads/windows/ 下载完成后将pyth…...
Leetcode每日一题:1267. 统计参与通信的服务器(2023.8.24 C++)
目录 1267. 统计参与通信的服务器 题目描述: 实现代码与解析: 写法一:两次遍历 hash 原理思路: 写法二:三次遍历 原理思路: 1267. 统计参与通信的服务器 题目描述: 这里有一幅服务器分…...
c++(8.28)菱形继承,虚继承,多态,抽象类,模板+Xmind
xmind: 作业: 1.编程题: 以下是一个简单的比喻,将多态概念与生活中的实际情况相联系: 比喻:动物园的讲解员和动物表演 想象一下你去了一家动物园,看到了许多不同种类的动物,如狮子、大象、猴…...
安装部署JavaFX和IDEA添加JavaFX的详细步骤
安装部署JavaFX和IDEA添加JavaFX的详细步骤 一、认识JavaFX二、下载JavaFX三、解压到目录下四、IDEA导入JavaFX五、添加JavaFX的VM选项六、运行命令七、总结一、认识JavaFX JavaFX是Java平台的一个图形用户界面(GUI)工具包,用于创建丰富、交互式和可视化的应用程序。JavaFX提…...
MAC电脑外放没有声音解决方案
烦人呐,我的mac外接显示屏幕,显示器没有音频输出,需要mac笔记本的音频输出,但是经常打开后,mac没有声音输出,需要重启电脑才能生效。亲测一下方法有效,请参考: 文章目录 一、短期方案…...
Spring源码分析(八)CreateBean与DoCreateBean
写目录 一 CreateBean二 doCreateBean2.1 BeanWrapper2.2 缓存删除2.3 实例化Bean2.3.1 Supplier创建对象2.3.2 工厂创建对象2.3.3 构造器创建实例无参构造构造器依赖注入Setter的依赖注入autowireConstructor实例化instantiateBean 方法 2.4 Bean的前置处理 官网:H…...
iSCSI存储服务器
目录 一、ISCSI是什么? 二、ISCSI产生背景 三、存储分类 四、ISCSI架构 五、ISCSI存储服务搭建案例 一、ISCSI是什么? ISCSI名为互联网小型计算机系统接口又称为IP-SAN,是一种新的远程存储技术,提供存储服务的目标服务器默认使用的…...
信息技术02--初/高中--分类选择题(377道题与解析)
文章目录 第一章 办公软件 1-96第二章 信息技术基础 1-41第三章 计算机系统基础 1-28第四章 多媒体技术 1-115第五章 计算机网络技术 1-50第六章 信息安全 1-3第七章 算法与程序简介 1-13第八章 数据结构 1-2第九章 数据库技术 1-20第十章 练习 1-9 第一章 办公软件 1-96 1、某…...
java --- 枚举类
目录 一、枚举类 二、创建枚举类 2.1、JDK5.0之前创建 2.2、JDK5.0使用enum创建 三、枚举类常用方法 四、枚举类实现接口 一、枚举类 枚举类型本质上也是一种类,只不过是这个类的对象是有限的、固定的几个,不能让用户随意创建。 二、创建枚举类 …...
nvm和volta对node版本控制的区别
前言——我们做前端开发的都会需要node.js环境,我们直接安装指定的版本可以么?可以,只不过在需要换版本的时候还得卸载重新装。那有工具可以帮助我们不用卸载就更改node版本么?有啊,nvm就可以。那又有没有什么工具不用…...
高斯消元解线性方程组
思路: (1)模拟线性代数解方程组办法,在此讨论正方形方程组求解。 (2)考虑几个问题: 数据存储:采用double数组存储。判断是否为零,由于double计算存在误差,…...
探索ImageGlass:一个轻量级图像浏览器的多格式支持解决方案
探索ImageGlass:一个轻量级图像浏览器的多格式支持解决方案 【免费下载链接】ImageGlass 🏞 A lightweight, versatile image viewer 项目地址: https://gitcode.com/gh_mirrors/im/ImageGlass 当你面对数十种不同格式的图像文件时,是…...
解决MicroBlaze程序启动难题:Vivado中bit与elf文件合并的完整流程
解决MicroBlaze程序启动难题:Vivado中bit与elf文件合并的完整流程 在FPGA开发中,MicroBlaze软核处理器的应用越来越广泛,但许多开发者都会遇到一个共同的痛点:每次下载程序都需要分别加载bit文件和elf文件,这不仅增加了…...
ros2 跟着官方教学从零开始 CS
ros2 从零开始10 服务者和消费者C/S 前言 上节课介绍写了简单的Topic订阅模型。本章我们将要学习C/S模型,即服务者和消费者模型 背景 前面服务概念时提到过,服务是ROS2 节点的另一种通信方式。服务基于调用与响应模型,而非发布者-订阅者主题模…...
高效音频录制实战:如何为你的Web应用选择最佳编码方案
高效音频录制实战:如何为你的Web应用选择最佳编码方案 【免费下载链接】Recorder html5 js 录音 mp3 wav ogg webm amr g711a g711u 格式,支持pc和Android、iOS部分浏览器、Hybrid App(提供Android iOS App源码)、微信,…...
测试报告编写核心技巧:让结果一目了然的专业模板指南
测试报告的价值重构在软件质量保障体系中,测试报告不仅是项目交付的最终凭证,更是驱动质量改进的战略工具。优秀的测试报告需实现三重价值:决策支持:为上线评审提供数据化依据问题追踪:形成缺陷治理的闭环链路效能度量…...
Transformer模型中的Self-Attention机制:从理论到代码实现(PyTorch版)
Transformer模型中的Self-Attention机制:从理论到代码实现(PyTorch版) 在自然语言处理领域,Transformer架构彻底改变了序列建模的范式。2017年那篇开创性论文提出的Self-Attention机制,不仅解决了传统RNN的长期依赖问题…...
Flux.1-Dev深海幻境在网络安全领域的应用:恶意流量日志可视化分析
Flux.1-Dev深海幻境在网络安全领域的应用:恶意流量日志可视化分析 每天,安全运维中心的告警大屏上,成千上万条日志像瀑布一样滚动。分析师小李紧盯着屏幕,试图从这些密密麻麻的IP地址、端口号和状态码中,分辨出一次真…...
Fun-ASR参数配置攻略:热词列表、目标语言,这样设置准确率最高
Fun-ASR参数配置攻略:热词列表、目标语言,这样设置准确率最高 1. 为什么参数配置如此重要? 语音识别系统的准确率往往取决于两个关键因素:模型本身的性能和使用者的参数配置。Fun-ASR作为钉钉与通义实验室联合推出的企业级语音识别…...
STM32摇杆驱动设计:裸机与FreeRTOS下的轻量级Joystick模块实现
1. 项目概述“Joystick”并非一个通用型开源驱动库或标准化外设抽象层,而是一个面向特定毕业设计(Tesis)场景的嵌入式人机交互模块实现。其核心目标是为基于STM32系列微控制器(如STM32F407VG、STM32F103C8T6等常见开发板ÿ…...
手把手教你恢复误删的xfce4面板(附备份还原完整流程)
深度解析XFCE4面板管理:从误删恢复到高效备份的全方位指南 XFCE4作为Linux桌面环境中轻量高效的代名词,其面板系统却常常成为用户操作的"高危区域"。我曾亲眼见证一位开发者同事在演示前夕误删所有面板,手忙脚乱地尝试各种恢复方法…...

