报表控件Stimulsoft技术答疑:如何在二维码中编码数据?

news2024/10/7 5:28:58

Stimulsoft Reports是一款报告编写器,主要用于在桌面和Web上从头开始创建任何复杂的报告。可以在大多数平台上轻松实现部署,如ASP.NET, WinForms, .NET Core, JavaScript, WPF, Angular, Blazor, PHP, Java等,在你的应用程序中嵌入报告设计器或在线创建报告,支持从云端快速分享你的报告。

Stimulsoft Reports官方正版下载icon-default.png?t=N0U7https://www.evget.com/product/2398/download

最近,我们经常发布一些如何在Stimulsoft中创建二维码的文章:

  • Stimulsoft Reports 中关于二维码的文章;
  • QR сode 自定义选项;
  • 将图像嵌入到二维码中。

然而,我们并没有介绍二维码的使用技术方面。今天,我们就一起来谈谈 QR ñode 中的数据编码以及与之相关的问题。

应用编码的通用算法

二维码支持多种信息记录方式。通常,模式选择算法的工作原理如下 - 分析输入数据并检查它是否可以以紧凑模式(数字、字母数字、汉字)之一写入。如果无法写入,则使用字节模式。在字节模式下,输入数据使用ECI(扩展通道解释)列表中的编码之一进行编码。该算法依次检查每个编码,并确定它是否可以用于对输入数据的所有字符进行编码。如果没有合适的,则使用通用编码“ UTF-8 ”。这样做都是为了确保条码尽可能小,因为在UTF-8中模式条形码具有最大尺寸。我们产品支持的二维码

ECI 标准编码列表:

  • “CP437”;
  • “ISO-8859-1”;
  • “ISO-8859-2”;
  • “ISO-8859-3”;
  • “ISO-8859-4”;
  • “ISO-8859-5”;
  • “ISO-8859-6”;
  • “ISO-8859-7”;
  • “ISO-8859-8”;
  • “ISO-8859-9”;
  • “ISO-8859-11”;
  • “ISO-8859-13”;
  • “ISO-8859-15”;
  • “Shift_JIS”;
  • “Windows-1250”;
  • “Windows-1251”;
  • “Windows-1252”;
  • “Windows-1256”;
  • “UTF-8”。

注意: JS版本支持的编码较少(由于有技术限制):

  • “ISO-8859-1”;
  • “Windows-1250”;
  • “Windows-1251”;
  • “Windows-1252”;
  • “Windows-1256”;
  • “UTF-8”。

编码错误问题

不同的条形码阅读器可能支持不同的编码集来解码 QR 码。例如,某些国家/地区的条形码阅读器仅支持该国家/地区最常用的某些编码。
此外,许多读取条码的移动应用程序仅支持某些编码,有些应用程序根本不支持 ECI 标准。
如今大多数扫描仪都能够处理UTF-8编码。
此列表中的一些编码是相似的。例如,ISO-8859-5和Windows-1251包含西里尔字符。因此,文本使用哪种编码仅取决于输入数据。例如,某些扫描仪不适用于ISO-8859-5编码,并要求使用Windows-1251。

解决方案

当需要指定选择开始的编码时,您可以使用静态属性 - StiOptions.Engine.BarcodeQRCodeDefaultByteModeEncoding。
例如,让我们在Windows_1251设置默认编码:
StiOptions.Engine.BarcodeQRCodeDefaultByteModeEncoding = Stimulsoft.Report.BarCodes.StiQRCodeECIMode.Windows_1251;

解决“条码开头多出三个字符”的问题

有时用户抱怨扫描信息的开头出现多余的字符。这其实不是什么问题,这只是条形码中编码信息的一个特征。如果输入数据使用UTF-8编码,那么许多程序(和我们的报告工具)都会在数据前加上BOM(字节顺序标记)。此标签是某些应用程序的标记,可帮助确定编码。但是,并不是所有的扫描仪都能识别 BOM 标记,所以在文本的开头就出现了三个多余的字符。

解决方案

将StiOptions.Engine.BarcodeQRCodeAllowUnicodeBOM选项设置为 false 以避免这种情况,并且不向输入数据添加 BOM 标签。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/194414.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深度学习网络各种激活函数 Sigmoid、Tanh、ReLU、Leaky_ReLU、SiLU、Mish

激活函数的目的就是为网络提供非线性化 梯度消失:梯度为0, 无法反向传播,导致参数得不到更新 梯度饱和:随着数据的变化,梯度没有明显变化 梯度爆炸:梯度越来越大,无法收敛 梯度消失问题&#…

JavaWeb1-计算机是如何工作的?

目录 1.计算机的构成 1.1.计算机二进制 1.2.冯诺依曼体系结构 1.2.1.CPU(加工厂) 1.2.2.存储器(仓库) 1.2.3.输⼊设备(原材料) 1.2.4.输出设备(产品) PS:关于存…

Jmeter 并发业务场景如何控制接口只执行一次

今天在做并发测试,执行后会发现登录接口执行多次,实际只需执行一次就可以。 刚开始用了网上推荐的仅一次控制器,但是发现仅一次控制器对线程组无效。 其实只要对元件熟悉,这个问题很简单,只需要用吞吐量控制器&#xf…

CDH数仓项目(四) —— 集群性能测试/资源管理/清理CDH集群

0 说明 本文基于《CDH数仓项目(一) —— CDH安装部署搭建详细流程》《CDH数仓项目(二) —— 用户行为数仓和业务数仓搭建》和《CDH数仓项目(三) —— Kerberos安全认证和Sentry权限管理》章节,本篇介绍些常见的性能测试和资源管理功能,及最后提供详细的…

SpringMVC之五种类型参数传递

目录 一:普通参数 二:POJO数据类型 三:嵌套POJO类型参数 四:数组类型参数 五:集合类型参数 知识点1:RequestParam 前面我们已经能够使用GET或POST来发送请求和数据,所携带的数据都是比较简…

深度学习中的attention机制

SE 文章 https://openaccess.thecvf.com/content_cvpr_2018/papers/Hu_Squeeze-and-Excitation_Networks_CVPR_2018_paper.pdfhttps://openaccess.thecvf.com/content_cvpr_2018/papers/Hu_Squeeze-and-Excitation_Networks_CVPR_2018_paper.pdf class SELayer(nn.Module):…

Java工具包类

java.util包有很多实用的类、接口和异常。 向量类,堆栈类,哈希表,枚举接口,日历类,随机函数类,映射接口和属性类。 Vector类 vector是异构的,可以存储不同的对象,同时可以动态增加…

【工具】国内苹果市场已上架 新一代社交产品 damus

国内苹果市场可下载 2月1日,Twitter 联合创始人 Jack Dorsey 发布推文表示,基于分布式社交媒体协议 Nostr 的社交产品 Damus 和 Amethyst 正式在苹果 App Store 和谷歌 Google Play Store 上线。 目前为止,Damus 在国内苹果应用市场是可以直…

远程超大功率森林防火喊话与应急广播系统方案

北京恒星科通发布于2023-2-2 一、引言 随着消灭宜林荒山和实现全面绿化,造林事业不断发展,林地面积、林业蓄积量逐年增加,如何加强森林防火、保护环境,是全国当前面临的一项重大任务。 森林火灾是一种突发性和破坏性极强的自然…

Spring Security(新版本)实现权限认证与授权

学习新版SpringSecurity详细配置一、Spring Security介绍1、Spring Security简介2、历史3、同款产品对比3.1、Spring Security3.2、 Shiro二、Spring Security实现权限1、SpringSecurity入门1.1 添加依赖1.2、启动项目测试2、用户认证2.1、用户认证核心组件2.2、用户认证2.2.1、…

CrossOver虚拟机软件2023最新版Mac运行切换Windows

CrossOver2023版是专为苹果电脑用户打造的一款实用工具,这款工具主要方便用户在mac上运行windows系列的应用程序,用户不需要安装虚拟机就可以实现各种应用程序的直接应用,并且可以实现无缝集成,实现跨平台的复制粘贴和文件互通等&…

我为什么抢不到票?!全国最难抢线路揭晓

随着疫情防控策略的转变,不少多年未归的朋友选择在今年返乡团聚。那么2023年春运抢票难度是否会因此而飙升?本期文章,我们通过数据分析,观察比较哪条线路的票最难抢,给还没有买到票的朋友提供参考。 根据往年央视报道和…

浅析晶体管放大电路的负载线

晶体管放大电路的负载线包括直流负载线和交流负载线,描述了输出端电压、电流与负载之间的关系。大学期间曾经学习过相关知识,本文将与大家重温所学内容,并介绍直流工作点对功率放大器性能的影响。 直流负载线 以场效应管为例,图…

基于python3实现Azure机器学习最接近人声的文本转语音功能

上期文章,我们介绍了如何使用Azure来创建一个语音服务API,哪里,我们得到了API的key,以及语音服务的基本信息,包含地区等,这些都是本期代码需要的参数 听了那么多AI合成的语音,Azure机器学习的文本转语音最接近人声https://blog.csdn.net/weixin_44782294/article/detai…

如何实现大文件上传:秒传、断点续传、分片上传

前言 文件上传是一个老生常谈的话题了,在文件相对比较小的情况下,可以直接把文件转化为字节流上传到服务器,但在文件比较大的情况下,用普通的方式进行上传,这可不是一个好的办法,毕竟很少有人会忍受&#…

在字节跳动干了5年的软件测试,2月无情被辞,想给划水的兄弟提个醒

前几天,一个认识了好几年在大厂工作做软件测试的朋友,年近30了,却被大厂以“人员优化”的名义无情被辞,据他说,有一个月散伙饭都吃了好几顿…… 在很多企业,都有KPI考核,然后在此基础上还会弄个…

Ubuntu设置静态IP

Ubuntu设置静态IP1.当前环境2. 设置前准备3.前提准备4.修改VMware中的网络配置5.修改Ubuntu配置文件6.查看网关信息7.Xshell远程连接1.当前环境 VMware16、Xshell7 2. 设置前准备 VMware16设置快照,配置出错可以返回到初始状态 3.前提准备 查看Ubuntu是否安装vi…

小程序项目学习--第七章:播放页布局-歌曲进度控制-歌词的展示

第七章:播放页布局-歌曲进度控制-歌词的展示 01_(了解)之前页面的回顾和播放页的介绍 功能介绍 02_(掌握)播放页-点击Item跳转到播放页和传入ID 功能概览 1.创建页面music-player 2.监听item的点击 方式一:直接写在子组件上 绑定监听点击 需要获取…

关于xxl-job中的慢sql引发的磁盘I/O飙升导致拖垮整个数据库服务

背景: 某天突然发现服务探测接口疯狂告警、同时数据库CPU消耗也告警,最后系统都无法访问; 查看服务端日志,发现大量的报错如下: CommunicationsException: Communications link failure :The last packet s…

dapr入门与本地托管模式尝试

1 简介 Dapr是一个可移植的、事件驱动的运行时,它使任何开发人员能够轻松构建出弹性的、无状态和有状态的应用程序,并可运行在云平台或边缘计算中,它同时也支持多种编程语言和开发框架。Dapr支持的语言很多,包括C/Go/Java/JavaSc…