Your scanner beeps, so it read the barcode. But what lands in your spreadsheet or point-of-sale screen is wrong: odd symbols, lowercase where you expected capitals, a missing leading zero, or a number entered twice. That is a different problem from a barcode that will not scan at all, which the barcode not scanning checklist covers.
Here the bars were probably decoded correctly. The trouble is in what the scanner is told to send and how your software receives it. This guide walks you through finding which step changes the data.
Why scanner input goes wrong
Most USB scanners act like a keyboard. Microsoft calls this keyboard wedge mode: the decoded data is inserted at your cursor as if you had typed it (Microsoft Learn). That is convenient, but it means everything that can go wrong with typing can go wrong with scanning. The scanner "types" characters through your computer's keyboard layout, with your Caps Lock state, into whatever window has focus.
Scanners also do some formatting of their own before sending. They can add a suffix such as Enter, include or drop a check digit, and treat some barcode types specially. See how barcode scanners work for the basics of how a scan reaches software.
Start with a plain text test
Open Notepad, TextEdit set to plain text, or any empty text box, click inside it, and scan the same label. This shows you what the scanner sends before your spreadsheet or inventory software has a chance to change it.
- Text is wrong in the plain text window too: the cause is in the scanner or the computer's keyboard settings (sections below on layout, Caps Lock, Code 39 and check digits).
- Text is right there but wrong in your program: the cause is the program, usually cell formatting, an autocomplete feature, or a field that reacts to Enter.
- Nothing types at all, but the scanner beeps: it may not be in keyboard mode. Microsoft notes that a USB scanner must be set to HID POS Scanner mode to work with Windows' built-in scanner driver, and that other modes exist, so check your scanner's manual for how to return to keyboard mode.
Symptom guide
| What you see | Most likely cause | Where to look |
|---|---|---|
| Symbols or some letters are replaced by others | Scanner keyboard country setting differs from the computer's layout | Scanner programming guide, country keyboard type |
| Capital letters come out lowercase, or the reverse | Caps Lock is on, and the scanner does not override it | Caps Lock override setting |
| Everything lands on one line, or the cursor never moves | No Enter or Tab after the scan | Scanner suffix setting |
| Cursor jumps down or a form submits twice | Scanner adds Enter and the app does too | Scanner suffix or app setting |
| Code 39 data shows pairs such as a plus sign before a capital | Full ASCII is off | Code 39 Full ASCII setting |
| One digit too many or too few | Check digit transmission differs from what you expect | Check digit transmit setting |
| Leading zero gone, or digits turn into zeros | Spreadsheet converted the value to a number | Cell format |
| Same number entered twice | Re-read of the same label, or a duplicate Enter | Same-symbol timeout, suffix |
Fix characters that are replaced or changed
Keyboard layout mismatch
Because the scanner types through the keyboard layout, the scanner and the computer must agree on which layout is in use. Zebra's LS2208 reference guide includes a list of country keyboard types you select by scanning a programming barcode. If a barcode full of punctuation produces different punctuation, this is the first setting to check. The same guide notes an option to emulate numeric keypad entry for keyboard types that are not on the list.
Caps Lock and letter case
The same manual describes a Caps Lock override that keeps the case of the data no matter what the Caps Lock key says. Its default is off. It also lists a convert-case option, and a simulated Caps Lock option that inverts letter case. If your labels use capital letters and your entries come out lowercase, check Caps Lock first, then the override.
Characters the computer does not recognize
The manual describes an "ignore unknown characters" setting for USB keyboard mode, The default sends the barcode but silently leaves out any character the computer does not recognize, with no error beep. When it is changed to not send such barcodes, the data is sent only up to the first unrecognized character and then the scanner gives an error beep. A scan that stops partway through is a clue that a special character is involved.
Fix Enter, Tab and duplicate entries
A scanner usually sends your data and then a terminator. The LS2208 guide provides programming barcodes to add an Enter key or a Tab key after the scanned data. Pick the one your workflow needs: Enter to submit a search box, Tab to move to the next field in a form.
If entries are doubled, ask whether two things are adding Enter. A scanner suffix plus an app that also submits on the barcode field will do it. Turn one off.
A true double read is a different cause. Scanners wait a short time before accepting the same barcode again so that a single pass does not register twice. The LS2208 guide lists a time-out between decodes of the same symbol, with a default of 0.6 seconds. If you scan two identical items in a row and only one registers, or one scan registers twice, this setting is worth a look.
Fix Code 39 and check digit surprises
Code 39 normally holds capital letters, digits and a few symbols (Code 39 vs. Code 128 has the details). A variant called Full ASCII pairs characters to encode the full ASCII set, as the LS2208 guide puts it, and in that guide it is disabled by default. If your labels use that variant and the scanner is not set for it, the pairs show up as separate characters instead of one. If your labels are plain Code 39, enabling Full ASCII can instead change data that contained a plus sign, percent sign, dollar sign or slash. For new labels, that guide also helps you choose between the two.
Check digits work the same way: the scanner chooses whether to send them. In the LS2208 guide, the UPC-A check digit is transmitted by default, while the Code 39 check digit is not. If your software expects 12 digits and gets 11, or the reverse, change the setting for that symbology instead of editing data afterward.
Fix spreadsheet changes
Spreadsheets are the most common source of "my zero disappeared." Microsoft states that Excel removes leading zeros, shows large numbers in scientific notation, and keeps only 15 significant digits, turning later digits into zeros (Microsoft Support).
Here is what that does to a real number. The UPC-A 012345678905 has a correct check digit (5), but a cell in General format stores 12345678905 and drops the leading zero. An 18-digit SSCC (the shipping container number, see GS1-128 SSCC labels) would have its last three digits replaced with zeros.
The fix is to format the column as Text before you scan or paste. Formatting as Text after the fact will not bring back digits Excel has already dropped, so rescan or retype them, or use the formula below. Microsoft also describes a TEXT formula that restores zeros, such as =TEXT(A2,"000000000000") for a 12-digit UPC-A, which returns text that is harder to use in later calculations (Microsoft Support). Other tips are in barcodes in Excel and Google Sheets. To confirm that a restored number is valid, run it through the check digit calculator.
Bottom line
Always test in a plain text window first, then change one scanner setting at a time using the programming barcodes in your model's manual. Settings names differ by brand, but the same handful (keyboard layout, Caps Lock, suffix, Code 39 options, check digit, same-symbol timeout) cause nearly every case. If the scanner also fails to beep on your labels, go back to the checklist for barcodes that will not scan.
Sources
- Zebra Technologies: LS2208 Product Reference Guide (accessed )
- Microsoft Learn: Configure a barcode scanner (accessed )
- Microsoft Support: Keeping leading zeros and large numbers (accessed )
- Microsoft Support: TEXT function (accessed )
