我的任务是使用iOS设备解码存储在Aztec条形码上的数据。我可以访问组装发送到条形码打印机的字符串的代码,但打印本身就是一个黑盒子。
当我逐步完成整个过程时,我可以看到发送到打印机的字符串如下所示(请注意,除了前8个字符之外,这是加密字符串):
_36_30_30_30_30_34_7c_5d_49_0b_ea_f7_93_ba_89_d2_c6_c2_41_2a_d7_1c_49_8c_6d_4b_5c_07_5a_ca_7a_6a_c6_d5_d0_6c_f7_20_76_5b_e0_18_46_93_7e_2a_30_0d_14_3a_1a_e5_66_7c_05_f9_df_96_8a_f1_45_a5_4a_6e_2f_89_3f_f0_93_1f_bc_3e_77_5b_27_0c_58_df_55_37_4c_ae_8a_e7_c3_c6_16_5b_57_db_7c_2d_2c_8b_1c_e3_a4_44_1b_c4_ba_6a_c6_98_93_ae_2d_20_6e_9f_e8_0f_eb_bc_9f_2e_8a_e7_cf_da_22_96_e1_74_de_b2_f0_29_ec_b1_c1_75_43_1f_b2_e5_1f_a5_f6_06_3e_97_a1_a1_93_f4_51_4a_c4_14_9f_1a_c2_5b_ba_02_45_44_2b_b3_c2_5b_ba_02_45_44_2b_b3_c2_5b_ba_02_45_44_2b_b3_c2_5b_ba_02_45_44_2b_b3_c2_5b_ba_02_45_44_2b_b3_c2_5b_ba_02_45_44_2b_b3_06_0b_12_75_85_8b_07_fb
打印的条形码如下所示:
然而,当我使用通用的iOS条形码阅读器阅读它时(我已尝试了一些),我得到以下内容:
600004|]I�ê÷ºÒÆÂA*×�ImK\�ZÊzjÆÕÐl÷ v[à�F~*0
�:�åf|�ùßñE¥Jn/?ð�¼>w['�XßU7L®çÃÆ�[WÛ|-,�ã¤D�ĺjÆ®- nè�PÐk^¡±xOS5·Óþ�ßá×D¢\���¥ö�>¡¡ôQJÄ��Â[º�ED+³Â[º�ED+³Â[º�ED+³Â[º�ED+³Â[º�ED+³Â[º�ED+³���u�û
这与原始字符串相似(例如前几个字符)。但我不知道这是什么类型的编码,或者如何将其转换为我期望看到的十六进制代码。
我很想知道:
1)我在这看什么?
2)如何将此字符串转换回原始格式?
答案 0 :(得分:0)
首先,我尝试了以下在线条形码阅读器:
这让我觉得你的条形码可能不是很好构建......
这是你的输出:
WHILE @currentrow < @rows
BEGIN
SET @currentrow = @currentrow + 1
SELECT @selectcol = sysid
FROM @TableVar
WHERE id = @currentrow
SELECT @sysid = @selectcol
IF NOT EXISTS (SELECT field_id FROM fields WHERE sys_id = @sysid AND NAME = @field_name)
BEGIN
PRINT CAST(@field_name AS VARCHAR) + ' not found in the business area ' + CAST(@sysid AS VARCHAR)
BREAK
END
ELSE
BEGIN
CONTINUE
END
END
这是来自zxing的那个:
600004|]Iê÷ºÒÆÂA*×ImK\ZÊzjÆÕÐl÷ v[àF~*0
:åf|ùßñE¥Jn/?ð¼>w['XßU7L®çÃÆ[WÛ|-,ã¤DĺjÆ®- nèPÐk^¡±xOS5·Óþßá×D¢\
(可能这种差异是由于你身边的复制/粘贴操作)
这是我能找到的匹配:
600004|]I�ê÷ºÒÆÂA*×�ImK\�ZÊzjÆÕÐl÷ v[à�F~*0
�:�åf|�ùßñE¥Jn/?ð�¼>w['�XßU7L®çÃÆ�[WÛ|-,�ã¤D�ĺjÆ®- nè�PÐk^¡±xOS5·Óþ�ßá×D¢\���¥ö�>¡¡ôQJÄ��Â[º�ED+³Â[º�ED+³Â[º�ED+³Â[º�ED+³Â[º�ED+³Â[º�ED+³���u�û
此似乎是一些Unicode UCS-2编码。
在此之后,我无法解释输出和预期的十六进制值之间的区别