当前位置: 首页 > news >正文

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字符串

问题&#xff1a; 现在已知有一个16进制字符串 435550D3C3D3DAD4DABDBBD2D7CFECD3A6CFFBCFA2D6D0B4E6B7C5D5DBBFDBD0C5CFA2A3ACD5DBBFDBBDF0B6EE3130302E3036 而且知道这串的字符串对应的内容是&#xff1a; CUP用于在交易响应消息中存放折扣信息&#xff0c;折扣金额100.06 但…...

【ES6】JavaScript中的Symbol

Symbol是JavaScript中的一种特殊的、不可变的、不可枚举的数据类型。它通常用于表示一个唯一的标识符&#xff0c;可以作为对象的属性键&#xff0c;确保对象的属性键的唯一性和不可变性。 Symbol.for()是Symbol的一个方法&#xff0c;它用于创建一个已经注册的Symbol对象。当…...

理解React页面渲染原理,如何优化React性能?

React JSX转换成真实DOM过程 当使用React编写应用程序时&#xff0c;可以使用JSX语法来描述用户界面的结构。JSX是一种类似于HTML的语法&#xff0c;但实际上它是一种JavaScript的扩展&#xff0c;用于定义React元素。React元素描述了我们想要在界面上看到的内容和结构。 在运…...

数据通信——传输层TCP(可靠传输机制的滑动窗口)

引言 之前提到过拥塞问题&#xff0c;如果大量数据疯狂涌入&#xff0c;接收端无法及时处理就会导致数据丢包&#xff0c;从而使得通信受到干扰。之前的连续ARQ如果不加以节制&#xff0c;疯狂发送报文&#xff0c;接收端无法及时返回ACK就会导致网络瘫痪。 滑动窗口机制协议 这…...

Mycat之前世今生

如果我有一个32核心的服务器&#xff0c;我就可以实现1个亿的数据分片&#xff0c;我有32核心的服务器么&#xff1f;没有&#xff0c;所以我至今无法实现1个亿的数据分片。——MyCAT ‘s Plan 话说“每一个成功的男人背后都有一个女人”&#xff0c;自然MyCAT也逃脱不了这个诅…...

Linux- 重定向标准输出(stdout)和标准错误(stderr)

在Linux或Unix系统中&#xff0c;可以通过重定向标准输出&#xff08;stdout&#xff09;和标准错误&#xff08;stderr&#xff09;来将脚本的输出保存到一个文件中。以下是一些方法&#xff1a; 只重定向标准输出到文件&#xff1a; ./your_script.sh > output.txt这将只捕…...

PostgreSQL分区表

什么是分区表 数据库分区表将表数据分成更小的物理分片&#xff0c;以此提高性能、可用性、易管理性。分区表是关系型数据库中比较常见的对大表的优化方式&#xff0c;数据库管理系统一般都提供了分区管理&#xff0c;而业务可以直接访问分区表而不需要调整业务架构&#xff0c…...

android framework之Applicataion启动流程分析(二)

上一篇讲了Zygote是如何收到启动Application的启动消息,并一步步进入Fork()&#xff0c;下面来分析zygote fork启动application后&#xff0c;application进程后续处理操作&#xff0c;是如何真正的启动的。 ZygoteInit.main():-->...caller ZygoteServer.runSelectLoop()…...

django静态文件无法访问解决方案

nginx配置如下&#xff1a; # 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&#xff0c;如&#xff1a;python2.7、python3.6、python3.10 给个官网链接自己下&#xff0c;想要几版本就下几&#xff1a;https://www.python.org/downloads/windows/ 下载完成后将pyth…...

Leetcode每日一题:1267. 统计参与通信的服务器(2023.8.24 C++)

目录 1267. 统计参与通信的服务器 题目描述&#xff1a; 实现代码与解析&#xff1a; 写法一&#xff1a;两次遍历 hash 原理思路&#xff1a; 写法二&#xff1a;三次遍历 原理思路&#xff1a; 1267. 统计参与通信的服务器 题目描述&#xff1a; 这里有一幅服务器分…...

c++(8.28)菱形继承,虚继承,多态,抽象类,模板+Xmind

xmind: 作业&#xff1a; 1.编程题&#xff1a; 以下是一个简单的比喻&#xff0c;将多态概念与生活中的实际情况相联系&#xff1a; 比喻&#xff1a;动物园的讲解员和动物表演 想象一下你去了一家动物园&#xff0c;看到了许多不同种类的动物&#xff0c;如狮子、大象、猴…...

安装部署JavaFX和IDEA添加JavaFX的详细步骤

安装部署JavaFX和IDEA添加JavaFX的详细步骤 一、认识JavaFX二、下载JavaFX三、解压到目录下四、IDEA导入JavaFX五、添加JavaFX的VM选项六、运行命令七、总结一、认识JavaFX JavaFX是Java平台的一个图形用户界面(GUI)工具包,用于创建丰富、交互式和可视化的应用程序。JavaFX提…...

MAC电脑外放没有声音解决方案

烦人呐&#xff0c;我的mac外接显示屏幕&#xff0c;显示器没有音频输出&#xff0c;需要mac笔记本的音频输出&#xff0c;但是经常打开后&#xff0c;mac没有声音输出&#xff0c;需要重启电脑才能生效。亲测一下方法有效&#xff0c;请参考&#xff1a; 文章目录 一、短期方案…...

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的前置处理 官网&#xff1a;H…...

iSCSI存储服务器

目录 一、ISCSI是什么&#xff1f; 二、ISCSI产生背景 三、存储分类 四、ISCSI架构 五、ISCSI存储服务搭建案例 一、ISCSI是什么&#xff1f; ISCSI名为互联网小型计算机系统接口又称为IP-SAN&#xff0c;是一种新的远程存储技术&#xff0c;提供存储服务的目标服务器默认使用的…...

信息技术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创建 三、枚举类常用方法 四、枚举类实现接口 一、枚举类 枚举类型本质上也是一种类&#xff0c;只不过是这个类的对象是有限的、固定的几个&#xff0c;不能让用户随意创建。 二、创建枚举类 …...

nvm和volta对node版本控制的区别

前言——我们做前端开发的都会需要node.js环境&#xff0c;我们直接安装指定的版本可以么&#xff1f;可以&#xff0c;只不过在需要换版本的时候还得卸载重新装。那有工具可以帮助我们不用卸载就更改node版本么&#xff1f;有啊&#xff0c;nvm就可以。那又有没有什么工具不用…...

高斯消元解线性方程组

思路&#xff1a; &#xff08;1&#xff09;模拟线性代数解方程组办法&#xff0c;在此讨论正方形方程组求解。 &#xff08;2&#xff09;考虑几个问题&#xff1a; 数据存储&#xff1a;采用double数组存储。判断是否为零&#xff0c;由于double计算存在误差&#xff0c;…...

探索ImageGlass:一个轻量级图像浏览器的多格式支持解决方案

探索ImageGlass&#xff1a;一个轻量级图像浏览器的多格式支持解决方案 【免费下载链接】ImageGlass &#x1f3de; A lightweight, versatile image viewer 项目地址: https://gitcode.com/gh_mirrors/im/ImageGlass 当你面对数十种不同格式的图像文件时&#xff0c;是…...

解决MicroBlaze程序启动难题:Vivado中bit与elf文件合并的完整流程

解决MicroBlaze程序启动难题&#xff1a;Vivado中bit与elf文件合并的完整流程 在FPGA开发中&#xff0c;MicroBlaze软核处理器的应用越来越广泛&#xff0c;但许多开发者都会遇到一个共同的痛点&#xff1a;每次下载程序都需要分别加载bit文件和elf文件&#xff0c;这不仅增加了…...

ros2 跟着官方教学从零开始 CS

ros2 从零开始10 服务者和消费者C/S 前言 上节课介绍写了简单的Topic订阅模型。本章我们将要学习C/S模型&#xff0c;即服务者和消费者模型 背景 前面服务概念时提到过&#xff0c;服务是ROS2 节点的另一种通信方式。服务基于调用与响应模型&#xff0c;而非发布者-订阅者主题模…...

高效音频录制实战:如何为你的Web应用选择最佳编码方案

高效音频录制实战&#xff1a;如何为你的Web应用选择最佳编码方案 【免费下载链接】Recorder html5 js 录音 mp3 wav ogg webm amr g711a g711u 格式&#xff0c;支持pc和Android、iOS部分浏览器、Hybrid App&#xff08;提供Android iOS App源码&#xff09;、微信&#xff0c…...

测试报告编写核心技巧:让结果一目了然的专业模板指南

测试报告的价值重构在软件质量保障体系中&#xff0c;测试报告不仅是项目交付的最终凭证&#xff0c;更是驱动质量改进的战略工具。优秀的测试报告需实现三重价值&#xff1a;决策支持&#xff1a;为上线评审提供数据化依据问题追踪&#xff1a;形成缺陷治理的闭环链路效能度量…...

Transformer模型中的Self-Attention机制:从理论到代码实现(PyTorch版)

Transformer模型中的Self-Attention机制&#xff1a;从理论到代码实现&#xff08;PyTorch版&#xff09; 在自然语言处理领域&#xff0c;Transformer架构彻底改变了序列建模的范式。2017年那篇开创性论文提出的Self-Attention机制&#xff0c;不仅解决了传统RNN的长期依赖问题…...

Flux.1-Dev深海幻境在网络安全领域的应用:恶意流量日志可视化分析

Flux.1-Dev深海幻境在网络安全领域的应用&#xff1a;恶意流量日志可视化分析 每天&#xff0c;安全运维中心的告警大屏上&#xff0c;成千上万条日志像瀑布一样滚动。分析师小李紧盯着屏幕&#xff0c;试图从这些密密麻麻的IP地址、端口号和状态码中&#xff0c;分辨出一次真…...

Fun-ASR参数配置攻略:热词列表、目标语言,这样设置准确率最高

Fun-ASR参数配置攻略&#xff1a;热词列表、目标语言&#xff0c;这样设置准确率最高 1. 为什么参数配置如此重要&#xff1f; 语音识别系统的准确率往往取决于两个关键因素&#xff1a;模型本身的性能和使用者的参数配置。Fun-ASR作为钉钉与通义实验室联合推出的企业级语音识别…...

STM32摇杆驱动设计:裸机与FreeRTOS下的轻量级Joystick模块实现

1. 项目概述“Joystick”并非一个通用型开源驱动库或标准化外设抽象层&#xff0c;而是一个面向特定毕业设计&#xff08;Tesis&#xff09;场景的嵌入式人机交互模块实现。其核心目标是为基于STM32系列微控制器&#xff08;如STM32F407VG、STM32F103C8T6等常见开发板&#xff…...

手把手教你恢复误删的xfce4面板(附备份还原完整流程)

深度解析XFCE4面板管理&#xff1a;从误删恢复到高效备份的全方位指南 XFCE4作为Linux桌面环境中轻量高效的代名词&#xff0c;其面板系统却常常成为用户操作的"高危区域"。我曾亲眼见证一位开发者同事在演示前夕误删所有面板&#xff0c;手忙脚乱地尝试各种恢复方法…...