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

C# 生成二维码隐藏ASCII码

在 C# 中生成二维码时,如果需要隐藏或过滤掉 ASCII 码中的控制字符或不可见字符,可以在生成二维码之前对输入文本进行处理。以下是完整的实现步骤和代码示例:


1. 过滤 ASCII 码中的控制字符

ASCII 码中,0 到 31 以及 127 是控制字符(如换行符、制表符等),这些字符通常是不可见的。我们可以通过过滤这些字符来确保二维码内容不包含隐藏的 ASCII 码。

示例代码:过滤控制字符
using System;
using System.Text;public static string RemoveControlCharacters(string input)
{StringBuilder result = new StringBuilder();foreach (char c in input){// 只保留可打印字符(ASCII 码 32 到 126)if (c >= 32 && c <= 126){result.Append(c);}}return result.ToString();
}// 示例用法
string input = "Hello\x01World\x02!\x03"; // 包含控制字符的字符串
string cleanedInput = RemoveControlCharacters(input);
Console.WriteLine(cleanedInput); // 输出: HelloWorld!

2. 使用 ZXing.Net 生成二维码

ZXing.Net 是一个流行的二维码生成库。我们可以使用它来生成二维码。

安装 ZXing.Net

通过 NuGet 安装 ZXing.Net

Install-Package ZXing.Net
示例代码:生成二维码
using System;
using System.Drawing;
using ZXing;
using ZXing.Common;
using ZXing.QrCode;public static Bitmap GenerateQRCode(string text, int width, int height)
{var barcodeWriter = new BarcodeWriterPixelData{Format = BarcodeFormat.QR_CODE,Options = new QrCodeEncodingOptions{Width = width,Height = height,Margin = 1}};var pixelData = barcodeWriter.Write(text);var bitmap = new Bitmap(pixelData.Width, pixelData.Height, System.Drawing.Imaging.PixelFormat.Format32bppRgb);var bitmapData = bitmap.LockBits(new Rectangle(0, 0, pixelData.Width, pixelData.Height), System.Drawing.Imaging.ImageLockMode.WriteOnly, System.Drawing.Imaging.PixelFormat.Format32bppRgb);try{System.Runtime.InteropServices.Marshal.Copy(pixelData.Pixels, 0, bitmapData.Scan0, pixelData.Pixels.Length);}finally{bitmap.UnlockBits(bitmapData);}return bitmap;
}// 示例用法
string input = "Hello\x01World\x02!\x03"; // 包含控制字符的字符串
string cleanedInput = RemoveControlCharacters(input); // 过滤控制字符
Bitmap qrCodeImage = GenerateQRCode(cleanedInput, 300, 300); // 生成二维码
qrCodeImage.Save("qrcode.png"); // 保存二维码图片

3. 完整示例

以下是将过滤控制字符和生成二维码结合起来的完整示例:

using System;
using System.Drawing;
using System.Text;
using ZXing;
using ZXing.Common;
using ZXing.QrCode;class Program
{static void Main(){string input = "Hello\x01World\x02!\x03"; // 包含控制字符的字符串string cleanedInput = RemoveControlCharacters(input); // 过滤控制字符Bitmap qrCodeImage = GenerateQRCode(cleanedInput, 300, 300); // 生成二维码qrCodeImage.Save("qrcode.png"); // 保存二维码图片Console.WriteLine("二维码已生成并保存为 qrcode.png");}public static string RemoveControlCharacters(string input){StringBuilder result = new StringBuilder();foreach (char c in input){// 只保留可打印字符(ASCII 码 32 到 126)if (c >= 32 && c <= 126){result.Append(c);}}return result.ToString();}public static Bitmap GenerateQRCode(string text, int width, int height){var barcodeWriter = new BarcodeWriterPixelData{Format = BarcodeFormat.QR_CODE,Options = new QrCodeEncodingOptions{Width = width,Height = height,Margin = 1}};var pixelData = barcodeWriter.Write(text);var bitmap = new Bitmap(pixelData.Width, pixelData.Height, System.Drawing.Imaging.PixelFormat.Format32bppRgb);var bitmapData = bitmap.LockBits(new Rectangle(0, 0, pixelData.Width, pixelData.Height), System.Drawing.Imaging.ImageLockMode.WriteOnly, System.Drawing.Imaging.PixelFormat.Format32bppRgb);try{System.Runtime.InteropServices.Marshal.Copy(pixelData.Pixels, 0, bitmapData.Scan0, pixelData.Pixels.Length);}finally{bitmap.UnlockBits(bitmapData);}return bitmap;}
}

4. 运行结果

  1. 输入字符串 "Hello\x01World\x02!\x03" 会被过滤为 "HelloWorld!"
  2. 生成二维码并保存为 qrcode.png
  3. 扫描二维码时,内容为 "HelloWorld!",不包含控制字符。

总结

  • 使用 RemoveControlCharacters 方法过滤掉 ASCII 控制字符。
  • 使用 ZXing.Net 生成二维码。
  • 确保二维码内容不包含隐藏的 ASCII 码字符。

通过这种方式,你可以生成干净、不包含隐藏 ASCII 码的二维码。

相关文章:

C# 生成二维码隐藏ASCII码

在 C# 中生成二维码时&#xff0c;如果需要隐藏或过滤掉 ASCII 码中的控制字符或不可见字符&#xff0c;可以在生成二维码之前对输入文本进行处理。以下是完整的实现步骤和代码示例&#xff1a; 1. 过滤 ASCII 码中的控制字符 ASCII 码中&#xff0c;0 到 31 以及 127 是控制字…...

python有没有不同精度的整型类型?

在 Python 中&#xff0c;不像 C、Java 等语言有明确的不同精度整型类型&#xff08;如 int8、int16、int32、int64 等&#xff09;&#xff0c;Python 提供了统一的整数类型 int&#xff0c;它可以处理任意大小的整数&#xff0c;没有固定的精度限制。不过&#xff0c;Python …...

Python多线程编程理解面试题解析

一、多线程介绍 Python 的多线程是一种实现并发编程的方式&#xff0c;允许程序同时执行多个任务。然而&#xff0c;由于 Python 的全局解释器锁&#xff08;GIL&#xff09;的存在&#xff0c;多线程在某些场景下可能无法充分利用多核 CPU 的性能。以下是对 Python 多线程的理…...

网络协议相关知识有哪些?

前言 网络协议的基础是OSI和TCP/IP模型,这两个模型是理解协议分层的关键。 正文(仅是个人理解,如有遗漏望海涵) 网络协议是网络中设备间通信的规则和标准,涉及数据传输、路由、错误控制等多个方面。以下是网络协议相关知识的系统梳理: 一、网络协议分层模型 1、OSI七…...

【并发压测】高并发下Linux流量监控

在高并发环境下&#xff0c;Linux流量监控至关重要&#xff0c;可以帮助您确保网络性能和稳定性。以下是一些常用的Linux流量监控工具和方法&#xff1a; 1. **iftop**&#xff1a;iftop 是一款实时的网络流量监控工具&#xff0c;可以显示当前服务器上每个网络接口的流量使用情…...

Spring Boot项目中解决跨域问题(四种方式)

目录 一&#xff0c;跨域产生的原因二&#xff0c;什么情况下算跨域三&#xff0c;实际演示四&#xff0c;解决跨域的方法 1&#xff0c;CrossOrigin注解2&#xff0c;添加全局过滤器3&#xff0c;实现WebMvcConfigurer4&#xff0c;Nginx解决跨域5&#xff0c;注意 开发项目…...

革新之力:数字科技——重塑未来的超越想象之旅

在21世纪的科技浪潮中&#xff0c;数字科技如同一股不可阻挡的洪流&#xff0c;正以前所未有的速度和广度改变着我们的生活、工作乃至整个社会的结构。它不仅是技术的简单迭代&#xff0c;更是对人类社会认知边界的拓宽&#xff0c;对经济模式、社会治理、文化形态等多方面的深…...

matlab和java混合编程经验分享

最常用的就是可以查到再控制栏deploytool选择library complier打包&#xff0c;但是有问题就是比如果用了外部的求解器比如yalmip或者cplex的话用这个方法会找不到外部的求解器&#xff0c;网上找了很多&#xff0c;基本都大同小异。 后面分享一个亲测有效的打包方法&#xff0…...

rk3588/3576板端编译程序无法运行视频推理

图片推理可以&#xff0c;但是视频不行&#xff0c;运行视频推理报错&#xff1a;segment fault. 我遇到的问题原因是ffmpeg安装有问题&#xff0c;可以先在板端运行&#xff1a;ffmpeg -version ffmpeg version 4.2.4-1ubuntu1.0firefly6 Copyright (c) 2000-2020 the FFmpe…...

MATLAB在数据分析和绘图中的应用:从基础到实践

引言 股票数据分析是金融领域中的重要研究方向&#xff0c;通过对历史价格、成交量等数据的分析&#xff0c;可以帮助投资者更好地理解市场趋势和做出决策。MATLAB作为一种强大的科学计算工具&#xff0c;提供了丰富的数据处理和可视化功能&#xff0c;非常适合用于股票数据的…...

【CS285】高斯策略对数概率公式的学习笔记

公式介绍 在【CS285】中提到了高斯策略对数概率公式的公式如下&#xff1a; log ⁡ π θ ( a t ∣ s t ) − 1 2 ∥ f ( s t ) − a t ∥ Σ 2 const \log \pi_{\theta}(\mathbf{a}_t | \mathbf{s}_t) -\frac{1}{2} \left\| f(\mathbf{s}_t) - \mathbf{a}_t \right\|_{\S…...

windows环境下用docker搭建php开发环境dnmp

安装WSL WSL即Linux子系统&#xff0c;比虚拟机占用资源少&#xff0c;安装的前提是系统必须是win10以上。 WSL的安装比较简单&#xff0c;网上有很多教程&#xff0c;例如&#xff1a;WSL简介与安装流程&#xff08;Windows 下的 Linux 子系统&#xff09;_wsl安装-CSDN博客&…...

区块链中的递归长度前缀(RLP)序列化详解

文章目录 1. 什么是RLP序列化&#xff1f;2. RLP的设计目标与优势3. RLP处理的数据类型4. RLP编码规则详解字符串的编码规则列表的编码规则 5. RLP解码原理6. RLP在以太坊中的应用场景7. 编码示例分析8. 总结 1. 什么是RLP序列化&#xff1f; 递归长度前缀&#xff08;RLP&…...

PHP建立MySQL持久化连接(长连接)及mysql与mysqli扩展的区别

如果在 PHP 5.3 的版本以前想要创建MySQL的持久化连接(长连接)&#xff0c;需要显式调用 pconnect 创建&#xff1a; $con mysql_pconnect($server[host], $server[username], $server[password]); if (!($con false)) { if (mysql_select_db($server[database], $con) fals…...

基于Python+Django+Vue的旅游景区推荐系统系统设计与实现源代码+数据库+使用说明

运行截图 功能介绍 前台功能包括&#xff1a;首页、详情页、订单、用户中心。后台功能包括&#xff1a;首页、轮播图管理、管理员、卖家管理、买家管理、景区管理、订单管理非开源功能&#xff08;分类管理&#xff0c;地区管理&#xff0c;收藏管理&#xff0c;评论管理&a…...

架构学习第七周--Prometheus

目录 一、监控系统基础 二、Prometheus介绍 三、Prometheus单机部署 四、服务发现与告警功能 4.1&#xff0c;服务发现 4.2&#xff0c;告警功能实现 五、Prometheus与Kubernetes 5.1&#xff0c;Kubernetes指标 5.2&#xff0c;Prometheus集群部署 一、监控系统基础…...

基于Nanopi duo2的WiFi智能摄像头

1.固件包烧录 https://wiki.friendlyelec.com/wiki/index.php/NanoPi_Duo2/zh#.E8.BF.9E.E6.8E.A5WiFi 固件包链接以及烧录工具都在上面链接中 烧录过程 使用读卡器将SD卡插入到电脑,然后打开烧录工具 2.通过串口工具连接板子使其连接WiFi 对应的串口工具,就是这个HyperT…...

Hive Orc表数据导出和导入

导出到hdfs&#xff1a;hive执行 INSERT OVERWRITE DIRECTORY /test/hdfs_dir ROW FORMAT DELIMITED FIELDS TERMINATED BY \t STORED AS ORC SELECT * FROM hive_table; HDFS导出到本地&#xff1a;shell执行 hdfs dfs -get /test/hdfs_dis/file_name /linux_dir/xxx 本…...

Python爬虫实战:从零到一构建数据采集系统

文章目录 前言一、准备工作1.1 环境配置1.2 选择目标网站 二、爬虫实现步骤2.1 获取网页内容2.2 解析HTML2.3 数据保存 三、完整代码示例四、优化与扩展4.1 反爬应对策略4.2 动态页面处理4.3 数据可视化扩展 五、注意事项六、总结互动环节 前言 在大数据时代&#xff0c;数据采…...

Ubuntu 的RabbitMQ安装

目录 1.安装Erlang 查看erlang版本 退出命令 2. 安装 RabbitMQ 3.确认安装结果 4.安装RabbitMQ管理界面 5.启动服务并访问 1.启动服务 2.查看服务状态 3.通过IP:port 访问界面 4.添加管理员用户 a&#xff09;添加用户名&#xff1a;admin&#xff0c;密码&#xff1…...

七星棋牌源码高阶技术指南:6端互通、200+子游戏玩法深度剖析与企业级搭建实战(完全开源)

在棋牌游戏行业高速发展的今天&#xff0c;如何构建一个具备高并发、强稳定性与多功能支持的棋牌游戏系统成为众多开发者和运营团队关注的焦点。七星棋牌全开源修复版源码 凭借其 六端互通、200子游戏玩法、多省区本地化支持&#xff0c;以及 乐豆系统、防沉迷、比赛场、AI智能…...

cuda安装

cuda WSL2急速搭建CUDA体验环境_wsl2 cuda-CSDN博客 cudnn cuDNN Archive | NVIDIA Developer pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118...

Ubuntu 下 nginx-1.24.0 源码分析 - ngx_os_init 函数

ngx_os_init 声明在 src/os/unix/ngx_os.h ngx_int_t ngx_os_init(ngx_log_t *log); 定义在 src\os\unix\ngx_posix_init.c ngx_int_t ngx_os_init(ngx_log_t *log) {ngx_time_t *tp;ngx_uint_t n; #if (NGX_HAVE_LEVEL1_DCACHE_LINESIZE)long size; #endif#if (NGX…...

记录一次部署PC端网址全过程

当我查看我之前写的文章时、顿时惊奇发出感慨&#xff1a;啥时候写的&#xff1f;是我写的么&#xff1f;疑惑重重… 所以说&#xff0c;好记性不如烂笔头。 记录一次部署PC端网址全过程 部署PC端网址分是三步&#xff1a;第一步&#xff1a;申请域名并映射到外网IP &#xff0…...

QML 实现一个动态的启动界面

QML 实现一个动态的启动界面 一、效果查看二、源码分享三、所用到的资源下载 一、效果查看 二、源码分享 工程结构 main.qml import QtQuick import QtQuick.Controls import QtQuick.Dialogs import Qt.labs.platformWindow {id:windowwidth: 640height: 400visible: truetit…...

视频HDR技术详解,你的电脑怎么播放HDR视频?

闲聊&#xff1a;前两天在b站上面看到影视飓风的视频&#xff0c;让我有点疑惑&#xff0c;我不知道为什么播放视频有设备撑不住一说&#xff0c;所以感兴趣去ytb下载了4k原片30hz刷新的&#xff0c;然后测试一下我的电脑能不能播放&#xff0c;发现还是可以的&#xff0c;视觉…...

Spring统一功能处理:拦截器、响应与异常的统一管理

目录 一.拦截器 二.统一数据返回格式 三.统一异常处理 一.拦截器 拦截器是Spring框架提供的核功能之&#xff0c;主要来拦截的请求&#xff0c;在指定法前后&#xff0c;根据业务需要执预先设定的代码。 也就是说&#xff0c;允许开发员提前预定义些逻辑&#xff0c;在的请…...

2025年度福建省职业院校技能大赛高职组“信息安全管理与评估”赛项规程

2025 年度福建省职业院校技能大赛 高 职组“ 信息安全管理与评估 ”赛项规程 一、赛项名称 省赛编号&#xff1a;GZ032 赛项名称&#xff1a;信息安全管理与评估 赛项组别&#xff1a;高职组 竞赛形式&#xff1a; 团体赛 二、竞赛目的 为全面贯彻落实国家网络强国战略&#x…...

Vue 中 nextTick 的原理详解

1. 为什么需要 nextTick Vue 采用 异步渲染机制&#xff0c;当响应式数据发生变化时&#xff0c;Vue 并不会立即更新 DOM&#xff0c;而是将这些变化放入一个 队列 中&#xff0c;并在 同一事件循环&#xff08;Event Loop&#xff09;中合并相同的修改&#xff0c;最后执行批…...

vue 手写分页

【先看效果】 &#xff08;1&#xff09;内容小于2页 不展示页码 &#xff08;2&#xff09;1 < 内容页数< 限定展示页码 展示&#xff1a;页码、上下页&#xff1b;隐藏&#xff1a;首页、末页图标&#xff0c;上、下一区间码。即&#xff1a;&#xff08;页数&#…...

跟着柳叶刀数字健康,学习如何通过病理切片预测分子分类对预后的影响|项目复现

小罗碎碎念 项目复现 今天和大家分享一个非常具有参考价值的项目,手把手带着大家复现一篇发表在柳叶刀数字健康的文章。 花了六个小时才完成的这篇推送,信息量非常大,遇到了很多报错问题,但是解决以后的感觉是非常爽的,先给大家展示一下最终的成果——在同一张切片上,通…...

DuodooBMS源码解读之 sale_change模块

销售变更模块用户使用手册 一、模块概述 本扩展模块主要包含两个主要的 Python 文件&#xff1a;sale_change/report/sale_change_report.py 和 sale_change/wizard/sale_change_download.py&#xff0c;提供了销售变更报表查看和销售变更单下载的功能。以下是详细的使用说明…...

基于 Highcharts 实现 Vue 中的答题统计柱状图组件

在现代 Web 开发中&#xff0c;数据可视化是一个重要的组成部分&#xff0c;而 Highcharts 是一个广泛使用的 JavaScript 图表库&#xff0c;可以帮助开发者在 Web 页面上轻松地绘制丰富的图表。在本文中&#xff0c;我们将基于 Highcharts 创建一个用于答题统计的柱状图&#…...

MySQL 插入更新语句(insert…on duplicate key update语句 )

我们日常在使用 insert into 语句向表中插入数据时&#xff0c;一定遇到过主键或唯一索引冲突的情况&#xff0c;当遇到这种情况时&#xff0c;MySQL默认的反应是报错并停止执行后续的语句&#xff0c;为了避免这种情况&#xff0c;你有3种选择&#xff1a; 使用insert ignore…...

Jenkins整合Jmeter实现接口自动化测试

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、安装jmeter 下载&#xff1a;http://jmeter.apache.org/download_jmeter.cgi 这里我用了一台Windows安装jmeter用来写接口测试的脚本&#xff0c;启动前修改j…...

基于LM Arena 的 LLM 基准测试排行榜:DeepSeek-R1 排名第 5

打开 Arena 网站&#xff1a;https://lmarena.ai/&#xff0c;点开 Leaderboard 可以看到上图的排行榜&#xff0c;可以看到 DeepSeek-R1 排名第 5。...

游戏引擎学习第116天

回顾昨天的工作 本次工作内容主要集中在游戏开发的低级编程优化&#xff0c;尤其是手动优化软件渲染。工作目的之一是鼓励开发者避免依赖外部库&#xff0c;而是深入理解代码并进行优化。当前阶段正进行SIMD&#xff08;单指令多数据&#xff09;优化&#xff0c;使用Intel推荐…...

【AI绘画】大卫• 霍克尼风格——自然的魔法(一丹一世界)

大卫• 霍克尼&#xff0c;很喜欢这个老头&#xff0c;“艺术是一场战斗”。老先生零九年有了iphone&#xff0c;开始用iphone画画&#xff0c;一零年开始用ipad画画&#xff0c;用指头划拉&#xff0c;据说五分钟就能画一幅&#xff0c;每天早上随手画几幅送给身边的朋友。很c…...

当湖南家具遇上DeepSeek:极满家开启智能家居新时代

在湖南的街头巷尾&#xff0c;总流传着这样一句话&#xff1a;家具有温度&#xff0c;生活才有味道。走进铂乐极满家的展厅&#xff0c;只有被阳光浸润的原木香气&#xff0c;和智能家居跳动的温暖建议。DeepSeek就推荐了能自动调节高度的智能款&#xff0c;连护眼灯角度都算好…...

#渗透测试#批量漏洞挖掘#畅捷通T+远程命令执行漏洞

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章读。 目录 一、漏洞概况 二、攻击特征 三、应急处置…...

Docker挂载数据显式挂载和隐式挂载的区别

项目使用的Docker file 创建数据卷挂载点&#xff0c;结果发现宿主机目录中的数据卷路径下是空的&#xff0c;才知道docker file中创建的数据卷是隐式挂载&#xff0c;并不会在宿主机上留下持久化数据&#xff0c;随着容器被删除隐式挂载的数据卷也会跟着被删除 后面改为在jen…...

深度解析应用层协议-----HTTP与MQTT(涵盖Paho库)

HTTP协议概述 1.1 HTTP的基本概念 HTTP是一种应用层协议&#xff0c;使用TCP作为传输层协议&#xff0c;默认端口是80&#xff0c;基于请求和响应的方式&#xff0c;即客户端发起请求&#xff0c;服务器响应请求并返回数据&#xff08;HTML&#xff0c;JSON&#xff09;。在H…...

MySQL八股学习笔记

文章目录 一、MySQL结构1.宏观结构1.1.Server层1.2.存储引擎层 2.建立链接-连接器3.查询缓存4.解析SQL-解析器&#xff08;1&#xff09;词法分析&#xff08;2&#xff09;语法分析 5.执行SQL5.1.预处理器 prepare5.2.优化器 optimize5.3.执行器 execute&#xff08;1&#xf…...

C++ 设计模式-备忘录模式

游戏存档实现&#xff0c;包括撤销/重做、持久化存储、版本控制和内存管理 #include <iostream> #include <memory> #include <deque> #include <stack> #include <chrono> #include <fstream> #include <sstream> #include <ct…...

Jenkins 环境搭建---基于 Docker

前期准备 提前安装jdk、maven、nodeJs&#xff08;如果需要的话&#xff09; 创建 jenkins 环境目录&#xff0c;用来当做挂载卷 /data/jenkins/ 一&#xff1a;拉取 Jenkins 镜像 docker pull jenkins/jenkins:lts 二&#xff1a;设置 Jenkins挂载目录 mkdir -p ~/jen…...

【动态规划篇】:解析背包问题--动态规划塑造的算法利器

✨感谢您阅读本篇文章&#xff0c;文章内容是个人学习笔记的整理&#xff0c;如果哪里有误的话还请您指正噢✨ ✨ 个人主页&#xff1a;余辉zmh–CSDN博客 ✨ 文章所属专栏&#xff1a;动态规划篇–CSDN博客 文章目录 一.01背包问题1.模板题2.例题1.分割等和子集2.目标和3.最后…...

ok113i平台——多媒体播放器适配

1. 视频播放支持 1.1 在Linux平台交叉编译ffmpeg动态库&#xff0c;详情查看《ok113i平台——交叉编译音视频动态库》 提取如下动态库&#xff1a; libavcodec.so.58.134.100 libavdevice.so.58.13.100 libavfilter.so.7.110.100 libavformat.so.58.76.100 libavutil.so.56.…...

【保姆级教程】DeepSeek R1+RAG,基于开源三件套10分钟构建本地AI知识库

一、总体方案 目前在使用 DeepSeek 在线环境时&#xff0c;页面经常显示“服务器繁忙&#xff0c;请稍后再试”&#xff0c;以 DeepSeek R1 现在的火爆程度&#xff0c;这个状况可能还会持续一段时间&#xff0c;所以这里给大家提供了 DeepSeek R1 RAG 的本地部署方案。最后实现…...

线程与进程的深入解析及 Linux 线程编程

在操作系统中&#xff0c;进程和线程是进行并发执行的两种基本单位。理解它们的区别和各自的特点&#xff0c;能够帮助开发者更好地进行多任务编程&#xff0c;提高程序的并发性能。本文将探讨进程和线程的基础概念&#xff0c;及其在 Linux 系统中的实现方式&#xff0c;并介绍…...

微信问题总结(onpageshow ,popstate事件)

此坑描述 订单详情某按钮点击&#xff0c;通过window.location.href跳转到&#xff08;外部&#xff09;第三方链接后&#xff0c;回退后&#xff0c;在ios中生命周期和路由导航钩子都失效了&#xff0c;无法触发。 在安卓中无视此坑&#xff0c; 回退没有问题 解决 原因&am…...