gpt4 book ai didi

Javascript 代码 128 字符串生成器 - Ascii 值 > 127 问题

转载 作者:行者123 更新时间:2023-11-28 06:09:11 29 4
gpt4 key购买 nike

我一直在尝试构建一个小型的基于 html/javascript 的代码 128 B 型文本生成器。

我让它适用于大多数条形码,但如果使用的值创建一个大于 ascii 127 的字符的校验和,我就会遇到问题。我不确定应该用什么来替换它在这种情况下的值(value)。我读过在条形码中添加“Code 3”和“FNC X”值,但不清楚采用什么格式,带大括号,FNC 应该是“FNC4”还是“FNC 4”,或者这是否与校验和。

我正在使用此网站的免费 128 字体,http://jtbarton.com/Barcodes/BarcodeStringBuilderExample.aspx 。我尝试了各种条件,例如如果值 >127,则采用现有的 ascii 值而不是添加 32,但条形码无法读取。

我这里有一个jsfiddle,https://jsfiddle.net/jcqvag5g/ 。如果您使用 500.77005.YELLO.XXXXX.0160828 等值,则条形码文本无效。

任何见解将不胜感激。我目前还没有找到有效的解决方案。它也可能是我正在使用的特定条形码字体,因此也将不胜感激其他纯 128 字体的推荐。

这是主要的js代码。

function textTo128(str) {
/*
* Generate 128 Barcode text, suitable for copying and pasting.
*/
var len = str.length; //str.length - get length of string, used to generate the checksum.
var type128 = 104; // 128 Type B start
var typeClose = 106;
var total = 104;

var i; // Counter Variable
for(i=0;i<len;i++){
total += ((i+1) * (str.charCodeAt(i)-32)); //Multiply char position with decimal value of character, keep running total
}

var modVal = total % 103; // Use Modulus to find our checksum
var checksum = String.fromCharCode(modVal+32);

if(modVal+32>126){alert(modVal+32);};
document.getElementById('barcodeTotal').innerHTML = String.fromCharCode(type128+100) + str + checksum + String.fromCharCode(typeClose+100);
}

谢谢,-大卫

最佳答案

如果大于 126,校验和应加 18

var checksum = String.fromCharCode(modVal+32 > 126 ? modVal+32+18 : modVal+32);

关于Javascript 代码 128 字符串生成器 - Ascii 值 > 127 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36574678/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com