flutter将utf-8编码的字节序列转换为中英文字符串

embedded/2025/2/22 18:17:09/

这里遇到的问题是,我通过某种方式拿到了utf-8编码的字节序列,我只知道他们对应的是中英文字符。怎么将其转成中英文,并打印,让我对utf-8编码有了些许许的了解。

这里记录一下转换代码:

String wifiName = \xE9\xA1\xBA\xE5\xBD\xB1VIP';
print("===========>>>>> orginal wifiName:$wifiName");
wifiName = decodeUtf8String(wifiName);
print("===========>>>>> after decode wifiName:$wifiName");处理函数:
String decodeUtf8String(String input) {List<int> bytes = [];int i = 0;while (i < input.length) {if (i + 3 < input.length && input.substring(i, i + 2) == r'\x') {String hex = input.substring(i + 2, i + 4);// 将十六进制字符转换为整数int byte = int.parse(hex, radix: 16);bytes.add(byte);i += 4;} else {// 处理非十六进制字符bytes.add(input.codeUnitAt(i));i++;}}// 使用 utf8.decode 方法将字节列表解码为字符串return utf8.decode(bytes);}

由于字符串中,是若干个以\x打头且带有两个十六进制数的string(unicode码点)。所以,需要把这每个的十六进制数的编码部分,都依次转换为字节。后续再用utf8.decode来解码。

思路:
1、遍历这个字符串;
2、如果检索到\x这样的开头部分,就获取紧跟其后的两个十六进制数,并把它转成整数,然后添加到列表中;
3、如果没有检索到\x开头的,就直接把它放到列表里;
4、最后,使用utf8.decode方法对这个列表作解码,就能得到其对应的unicode字符内容。

最后给张截图:

在这里插入图片描述


http://www.ppmy.cn/embedded/164408.html

相关文章

Android WiFi BT 模组移植 分层详解

Android WiFi BT 模组移植 分层详解 作者&#xff1a;Witheart更新时间&#xff1a;20250220 1. 系统分层架构 通常可以将WiFi和BT的软件架构划分为以下几个层次&#xff1a; &#xff08;1&#xff09;应用层&#xff08;Application Layer&#xff09; 主要负责提供用户接…

.NET 9.0 的 Blazor Web App 项目中 EF Core 【事务】使用备忘

一、DbContext.Database.BeginTransactionAsync() 模式 1. 注意事项&#xff1a;连接字符串中启用了 MARS&#xff08;Multiple Active Result Sets&#xff1a;MultipleActiveResultSetsTrue &#xff09;后&#xff0c;无法创建 保存点&#xff08;保存点与 SQL Server 的多…

java(spring boot)实现向deepseek/GPT等模型的api发送请求/多轮对话(附源码)

我们再启动应用并获取api密钥后就可以对它发送请求了&#xff0c;但是官方文档对于如何进行多轮对话以及怎么自定义参数并没有说的很清楚&#xff0c;给的模板也没有java的&#xff0c;因此我们需要自己实现。 import org.json.JSONArray; import org.json.JSONObject;import j…

LeetCode100 力扣热题100 岛屿数量

题目背景 这个问题是岛屿数量问题&#xff0c;给定一个由 1&#xff08;陆地&#xff09;和 0&#xff08;水域&#xff09;组成的网格&#xff0c;计算并返回其中岛屿的数量。一个岛屿是由相邻的陆地组成&#xff0c;陆地可以是水平或垂直相邻。 思路 我们可以使用深度优先搜索…

nginx配置:nginx.conf配置文件

nginx.conf配置文件说明 基本结构 全局块&#xff1a;位于最外层&#xff0c;定义影响整个Nginx服务器的设置。事件块&#xff1a;配置网络连接相关的设置。HTTP块&#xff1a;定义HTTP服务器以及反向代理、负载均衡等特性。Server块&#xff1a;定义虚拟主机&#xff0c;即响…

汽车长期不保养的危害

汽车两三年不保养会对车辆的多个系统和部件产生严重危害&#xff0c;以下将详细阐述&#xff1a; 发动机系统 润滑系统问题 机油在发动机中起着润滑、冷却、清洁和密封的重要作用。长时间不更换机油&#xff0c;机油会因氧化、污染等原因变质&#xff0c;其润滑性能大幅下降。…

【HarmonyOS之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(四) -> 常见组件(二) -> tabs

目录 1 -> 创建Tabs 2 -> 设置Tabs方向 3 -> 设置样式 4 -> 显示页签索引 5 -> 场景示例 1 -> 创建Tabs 在pages/index目录下的hml文件中创建一个Tabs组件。 <!-- index.hml --> <div class"container" ><tabs> <tab-…

深入理解Zookeeper:分布式系统的协调者

引言 在现代分布式系统中&#xff0c;协调和管理多个节点之间的状态和行为是一个复杂且关键的任务。Zookeeper作为一个分布式协调服务&#xff0c;为开发者提供了一种高效、可靠的方式来处理分布式系统中的一致性问题。本文将介绍Zookeeper的基本概念、使用场景以及如何通过示…