我正在尝试通过修改一些 D3 javascript 来对代码 39 条码进行编码。
问题是我不明白代码 39 条码是如何编码的。看起来他们使用 12 位二进制对字符进行编码。
我怎样才能将像'598649'这样的字符串解码成它的12位二进制等价物,最好使用D3.js?
characters = {
'100100100101': '$',
'100100101001': '/',
'100101001001': '+',
'100101011011': '-',
'100101101011': 'X',
'100101101101': '*',
'100110101011': 'V',
'100110101101': ' ',
'100110110101': 'Z',
'101001001001': '%',
'101001011011': '7',
'101001101011': '4',
'101001101101': '0',
'101010011011': 'G',
'101010110011': 'Q',
'101011001011': 'D',
'101011001101': 'J',
'101011010011': 'N',
'101011011001': 'T',
'101100101011': '2',
'101100101101': '9',
'101100110101': '6',
'101101001011': 'B',
'101101001101': 'I',
'101101010011': 'L',
'101101011001': 'S',
'101101100101': 'F',
'101101101001': 'P',
'110010101011': 'U',
'110010101101': '0',
'110010110101': 'Y',
'110011010101': 'W',
'110100101011': '1',
'110100101101': '8',
'110100110101': '5',
'110101001011': 'A',
'110101001101': 'H',
'110101010011': 'K',
'110101011001': 'R',
'110101100101': 'E',
'110101101001': 'O',
'110110010101': '3',
'110110100101': 'C',
'110110101001': 'M',
}
这是到目前为止我一直在使用的一些代码。前面的代码生成随机二进制然后将键与值匹配。我想做相反的事情,所以我不确定我是否应该只创建第二个键/值反转的数组。
//var num= prompt("Enter num")
//console.log(parseInt(num, 10).toString(2))
//var decnum=892938
//alert(decnum.toString(2))
// var b = parseInt( a, 2 )
// var str = '34566'
// var found = str.match(/[01]{12}/g).map(['110100101101','101100101101', '101100101011', '101100101101', '110110010101', '110100101101'])
//str.match(/[01]{12}/g).map(characters)
//console.log(characters[v])
//console.log(found)
var str = ['110100101101','101100101101', '101100101011', '101100101101', '110110010101', '110100101101']
//var barcode_array = str.match(/[01]{12}/g).map(Object.keys(characters))
//console.log(barcode_array)
//split into array
var barcode_input = ['110100101101','101100101101', '101100101011', '101100101101', '110110010101', '110100101101']
//map to binary characters
//console.log(barcode_input.range(Object.keys(characters)))
这是小提琴 https://jsfiddle.net/6szmwkgm/6/
代码修改自 Christopher Manning http://bl.ocks.org/christophermanning/4324236 供参考这里是另一个代码 39 脚本http://notionovus.com/blog/code-39-barcode-biscuits/