許多條形碼掃描儀讀取單行上的黑色和白色部分。他們不知道這條線是水平的,垂直的還是對角線的,並且沒有內在的方法知道這條線是否「進入」一側的條形碼並離開另一側,或者如果它通過頂部進入,十字形對角線的條形碼,並通過底部退出。
一些條形碼格式,例如Interleaved 2 of 5開始和結尾的圖案通常在條形碼內出現[I2of5以BwBw開始並以BBwB結束],並且可能會出現部分掃描,從頂部或底部被誤讀,就像它是一個較短代碼的有效掃描一樣。其他一些條碼格式的起始和結尾都是選擇的模式,因此部分掃描無法讀取爲有效數據。代碼39介於兩者之間。
每個有效的代碼39條形碼都以BwBBwBBwwBw開頭並以wBwBBwBBwwB結尾。可以讓序列wBwBB出現在一個字符的末尾,BBwwBw出現在下一個字符的開始,它們之間有一個「w」。如果兩個這樣的字符對出現在條形碼內,則它們之間出現有限的各種字符,並且掃描在恰當的位置退出第一對,並且同樣在恰當的位置退出第二對,掃描儀會看到一個合法形成的條形碼,其內容與原始文件沒有明顯的相似之處。有人故意選擇滿足必要標準的條形碼數據,並試圖以一定角度掃描以產生錯誤讀取,但從許多掃描儀獲得錯誤讀取時,幾乎沒有問題,但數據和掃描角度必須「恰到好處」爲了造成問題。
如果有人擔心這種誤讀的可能性,可以打印條形碼,以保證掃描碼不會被視爲有效。這樣做的一個簡單方法是在條形碼上方和下方打印黑色,以便通過頂部或底部進入和/或退出的任何掃描都會將代碼視爲以特別厚的黑色條開始和/或結束。在許多看到「堆疊」條形碼的地方,它們將被一些不包含信息的點分開,而是設計用來確保從一行到另一行的掃描不被視爲有效。
如果您閱讀關於code39的維基百科文章,您會發現您的供應商有一點。我在票據掃描方面有這些類型的代碼的個人經驗,我們的專業掃描儀的失敗率通常是幾%。這些是帶有激光器的設備。有時候,他們會在條碼中看到短條形碼(例如,嘗試掃描牛仔褲)。軟件通常比激光表現更差... – 576i