16进制字符串转字符串

一、浏览器上

function hexToUtf8(hexString) {
   
  const hexArray = hexString.match(/.{
   1,2}/g) || [];
  const uint8Array = new Uint8Array(hexArray.map(hex => parseInt(hex, 16)));

  const textDecoder = new TextDecoder('GB2312'); //可以切换字符编码
  return textDecoder.decode(uint8Array);
}

// 示例用法
const hexString = "0D0A2D2D2D20B6C1C8A1B6A8CAB1C9CFB1A8B2CECAFD202D2D2D0D0A"; // 16进制字符串
const result = hexToUtf8(hexString);
console.log(result); // 输出: "hello, 你好"

在微信小程序中提示 TextDecoder is not defined,微信小程序环境中可能没有内置的TextDecoder

二、微信小程序上

在微信小程序中,如果你需要指定编码格式为GB2312,可以使用一个库来进行解码,因为微信小程序环境并没有原生支持GB2312编码。你可以考虑使用一个名为 iconv-lite 的库,该库支持多种字符编码的转换。

1、首先,在你的小程序项目中安装 iconv-lite 库:

npm install iconv-lite

2、然后,使用以下代码进行解码:

const iconv = require('iconv-lite');

function hexToGb2312(hexString) {
   
  const buffer = Buffer.from(hexString, 'hex');
  const decodedString = iconv.decode(buffer, 'GB2312');
  return decodedString;
}

// 示例用法
const hexString = "0D0A2D2D2D20B6C1C8A1B6A8CAB1C9CFB1A8B2CECAFD202D2D2D0D0A"; // 16进制字符串
const result = hexToGb2312(hexString);
console.log(result); // 输出: "hello, 你好"

3、然在再在页面中显示
由于字符串中有\r\n,标签并不能使\r\n 换行,要 标签才能进行换行

<text class="result_content"> 
				{
   {
   logChina}}
			</text>

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-06 06:16:05       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-06 06:16:05       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-06 06:16:05       87 阅读
  4. Python语言-面向对象

    2023-12-06 06:16:05       96 阅读

热门阅读

  1. Spring Application Event 在事件驱动设计中的应用

    2023-12-06 06:16:05       47 阅读
  2. 【Flink基础】-- 延迟数据的处理

    2023-12-06 06:16:05       63 阅读
  3. gitlab高级功能之CI/CD组件 - 原理介绍(一)

    2023-12-06 06:16:05       47 阅读
  4. electron持久化cookie的方法,从session中获取

    2023-12-06 06:16:05       62 阅读
  5. 2023年小美赛认证杯数学建模B题赛题

    2023-12-06 06:16:05       62 阅读
  6. SpringMVC实验(四)——前后端分离下的数据交互

    2023-12-06 06:16:05       62 阅读
  7. redis整理

    2023-12-06 06:16:05       63 阅读