Jump to content

Talk:Code 39

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia

This is the current revision of this page, as edited by Cewbot (talk | contribs) at 00:12, 13 February 2024 (Maintain {{WPBS}}: 4 WikiProject templates. Keep majority rating "Start" in {{WPBS}}. Remove 4 same ratings as {{WPBS}} in {{WikiProject Business}}, {{WikiProject Computing}}, {{WikiProject Retailing}}, {{WikiProject Technology}}.). The present address (URL) is a permanent link to this version.

(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)

I think

[edit]

I think I have noticed a thin white space (Format 2: 'w') between each character in this barcode fromat. Is this worth mentioning in the article?--Commander Keane 11:02, 11 Feb 2005 (UTC)

That space is definately there. That's why Code 39 is a 'discrete' code, rather than a 'continuous' code (eg, Code 128). It's probably worth mentioning, but then there's a bunch of other things worth mentioning too. Are we trying to put the full specification of Code 39 here? :) Personally, I think that would be cool :) -- Ch'marr 19:14, 15 March 2006 (UTC)[reply]
I added a link to a specification page in another Wiki. Up to now, however, this seems to include less information than this Wikipedia article. wr 87.139.81.19 13:25, 31 October 2007 (UTC)[reply]

The space doesn't have to be a thin one, see this example: [1] --Tilman (talk) 14:27, 13 June 2008 (UTC)[reply]

A better way of representing the code.

[edit]

Personally, I dislike the 'NwN' and 'bWb' nomenclature for representing the code. There's too much of a 'disconnect' between this nomenclature and how it's represented in real life (as black and white regions). Does anyone else do it this way? Ideally we should be using graphics, but I can certainly understand that that isn't feasible here. Instead, I propose using '#' and '_' characters to represent a dark and light region. For example, use this for the letter L:

#_###_#_#___###

. This would also be useable for the other barcoding standards. -- Ch'marr 19:19, 15 March 2006 (UTC)[reply]

Looks cute, but it's hard to count consecutive underscore characters. 141.189.251.1 (talk) 13:30, 19 November 2009 (UTC)[reply]


Maybe some other characters would be better e.g.

11OO10011

or

#'###'#'#'''###

141.189.251.1 (talk) 13:37, 19 November 2009 (UTC)[reply]

#'###'#'#'''###

or

#.###.#.#...###

look good to me, should work well when copy-pasting to text editors as well. Single and double quotes are always tricky as they are interpreted differently and formatted to UTF-8 characters.

Gabelstaplerfahrer (talk) 20:17, 5 April 2010 (UTC)[reply]

[edit]

This section needs to be pruned. There are far too many links providing too little information. Most of them are not much more than thinly veiled links to commercial software. --Millbrooky 16:09, 24 October 2006 (UTC)[reply]

Please refer to the Talk:European Article Number page for further discussion. --Millbrooky 16:53, 24 October 2006 (UTC)[reply]

Code 39 Extension

[edit]

Does anyone know of the US Code 39 Extension coding? If so, please post its specifications. Thanks. 75.31.138.94 19:12, 7 January 2007 (UTC)[reply]

Order of Table

[edit]

The table which shows the encoding of each character, places the punctuation at the top, followed by the digits and finally the letters. Given that the checksum encoding places the characters in a different order, and uses that order in its calculations, could we rearrange the table to have the same ordering. The description of the checksum simply refers to the ordinal value of the character, and you have to look at the sample code to see that what that order is. —Preceding unsigned comment added by David ORourke (talkcontribs) 13:11, 15 September 2008 (UTC)[reply]

Done 141.189.251.1 (talk) 13:29, 19 November 2009 (UTC)[reply]

upside down and backwards

[edit]

type 39 barcodes can be read backwards -- in this case, the characters will be re-mapped. In perl:

$backwards='PAEJJAAFFP';

$forward='*00116641*';

$backwards=reverse $backwards;

$backwards=~tr/\ \$\%\*\+\-\.\/0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ/S\%\$P\/ML\+FAHGEDJCBI1875403296U\.\-YX\*WV\ ZKRQONT/;

if ($forward eq $backwards){print "matched\n";}

Useful in the case of a fax cover sheet that can be fed in either way.

67.206.60.188 (talk) 18:54, 15 April 2009 (UTC)[reply]


This is just too implementation specific to be useful here. 141.189.251.1 (talk) 13:32, 19 November 2009 (UTC)[reply]

[edit]

I tried the [3] link (http://www.dscp.dla.mil/subs/support/specs/crds/milstan.asp) but its dead: "Ups! Page not found" And I cannot find any references to the table "Code 39 Characters". Where did you guys get this table with all of the characters? — Preceding unsigned comment added by 88.69.220.226 (talk) 22:10, 21 August 2012 (UTC)[reply]

Broken table

[edit]

The table seems to be incorrectly formated and is is completely unreadable. (I guess that the width of spaces depends on the font or how it's rendered?) Can't we use something universally readable, like ones and zeros?--109.81.213.241 (talk) 14:30, 13 July 2016 (UTC)[reply]

[edit]

Hello fellow Wikipedians,

I have just modified one external link on Code 39. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:

When you have finished reviewing my changes, you may follow the instructions on the template below to fix any issues with the URLs.

This message was posted before February 2018. After February 2018, "External links modified" talk page sections are no longer generated or monitored by InternetArchiveBot. No special action is required regarding these talk page notices, other than regular verification using the archive tool instructions below. Editors have permission to delete these "External links modified" talk page sections if they want to de-clutter talk pages, but see the RfC before doing mass systematic removals. This message is updated dynamically through the template {{source check}} (last update: 5 June 2024).

  • If you have discovered URLs which were erroneously considered dead by the bot, you can report them with this tool.
  • If you found an error with any archives or the URLs themselves, you can fix them with this tool.

Cheers.—InternetArchiveBot (Report bug) 04:34, 10 August 2017 (UTC)[reply]

Easier parsing of table information:

[edit]

A lot of good suggestions here as to how to represent the data in a table that could easily be easily understood or easily parsed into code, but no table. As someone who wrote code from the information here I misinterpreted the table data three times. After studying the images and compared them to the table I finally go it. I would like to share my great appreciation for all who contributed to this page as it allowed me to produce working code. The table does have all the data needed and if you're a little more adroit than me it probably isn't an issue. To make things simple I've added this table here with several interpretations. I'm not sure any of this is right for the main page but thought it worth sharing. Again many thanks to all the contributors. As someone who gets things wrong more often than I'd like, if the table below is flawed please let me know.

Character WB = Wide Black Line
NB = Narrow Black Line
WW = Wide White Line
NW = Narrow White
, = a delimiter and is no encoded
WB = Wide Black Line
NB = Narrow Black Line
WW = Wide White Line
NW = Narrow White
# = Wide Black Line
| = Narrow Black Line
_ = Wide White Line
. = Narrow White
11 = Wide Black Line
01 = Narrow Black Line
10 = Wide White Line
00 = Narrow White
, = a delimiter and is no encoded
11 = Wide Black Line
01 = Narrow Black Line
10 = Wide White Line
00 = Narrow White
▮ = Wide Black Line
| = Narrow Black Line
_ = Wide White Line
. = Narrow White
A WB,NW,NB,NW,NB,WW,NB,NW,WB WBNWNBNWNBWWNBNWWB #.|.|_|.# 11,00,01,00,01,10,01,00,11 110001000110010011 ▮.|.|_|.▮
B NB,NW,WB,NW,NB,WW,NB,NW,WB NBNWWBNWNBWWNBNWWB |.#.|_|.# 01,00,11,00,01,10,01,00,11 010011000110010011 |.▮.|_|.▮
C WB,NW,WB,NW,NB,WW,NB,NW,NB WBNWWBNWNBWWNBNWNB #.#.|_|.| 11,00,11,00,01,10,01,00,01 110011000110010001 ▮.▮.|_|.|
D NB,NW,NB,NW,WB,WW,NB,NW,WB NBNWNBNWWBWWNBNWWB |.|.#_|.# 01,00,01,00,11,10,01,00,11 010001001110010011 |.|.▮_|.▮
E WB,NW,NB,NW,WB,WW,NB,NW,NB WBNWNBNWWBWWNBNWNB #.|.#_|.| 11,00,01,00,11,10,01,00,01 110001001110010001 ▮.|.▮_|.|
F NB,NW,WB,NW,WB,WW,NB,NW,NB NBNWWBNWWBWWNBNWNB |.#.#_|.| 01,00,11,00,11,10,01,00,01 010011001110010001 |.▮.▮_|.|
G NB,NW,NB,NW,NB,WW,WB,NW,WB NBNWNBNWNBWWWBNWWB |.|.|_#.# 01,00,01,00,01,10,11,00,11 010001000110110011 |.|.|_▮.▮
H WB,NW,NB,NW,NB,WW,WB,NW,NB WBNWNBNWNBWWWBNWNB #.|.|_#.| 11,00,01,00,01,10,11,00,01 110001000110110001 ▮.|.|_▮.|
I NB,NW,WB,NW,NB,WW,WB,NW,NB NBNWWBNWNBWWWBNWNB |.#.|_#.| 01,00,11,00,01,10,11,00,01 010011000110110001 |.▮.|_▮.|
J NB,NW,NB,NW,WB,WW,WB,NW,NB NBNWNBNWWBWWWBNWNB |.|.#_#.| 01,00,01,00,11,10,11,00,01 010001001110110001 |.|.▮_▮.|
K WB,NW,NB,NW,NB,NW,NB,WW,WB WBNWNBNWNBNWNBWWWB #.|.|.|_# 11,00,01,00,01,00,01,10,11 110001000100011011 ▮.|.|.|_▮
L NB,NW,WB,NW,NB,NW,NB,WW,WB NBNWWBNWNBNWNBWWWB |.#.|.|_# 01,00,11,00,01,00,01,10,11 010011000100011011 |.▮.|.|_▮
M WB,NW,WB,NW,NB,NW,NB,WW,NB WBNWWBNWNBNWNBWWNB #.#.|.|_| 11,00,11,00,01,00,01,10,01 110011000100011001 ▮.▮.|.|_|
N NB,NW,NB,NW,WB,NW,NB,WW,WB NBNWNBNWWBNWNBWWWB |.|.#.|_# 01,00,01,00,11,00,01,10,11 010001001100011011 |.|.▮.|_▮
O WB,NW,NB,NW,WB,NW,NB,WW,NB WBNWNBNWWBNWNBWWNB #.|.#.|_| 11,00,01,00,11,00,01,10,01 110001001100011001 ▮.|.▮.|_|
P NB,NW,WB,NW,WB,NW,NB,WW,NB NBNWWBNWWBNWNBWWNB |.#.#.|_| 01,00,11,00,11,00,01,10,01 010011001100011001 |.▮.▮.|_|
Q NB,NW,NB,NW,NB,NW,WB,WW,WB NBNWNBNWNBNWWBWWWB |.|.|.#_# 01,00,01,00,01,00,11,10,11 010001000100111011 |.|.|.▮_▮
R WB,NW,NB,NW,NB,NW,WB,WW,NB WBNWNBNWNBNWWBWWNB #.|.|.#_| 11,00,01,00,01,00,11,10,01 110001000100111001 ▮.|.|.▮_|
S NB,NW,WB,NW,NB,NW,WB,WW,NB NBNWWBNWNBNWWBWWNB |.#.|.#_| 01,00,11,00,01,00,11,10,01 010011000100111001 |.▮.|.▮_|
T NB,NW,NB,NW,WB,NW,WB,WW,NB NBNWNBNWWBNWWBWWNB |.|.#.#_| 01,00,01,00,11,00,11,10,01 010001001100111001 |.|.▮.▮_|
U WB,WW,NB,NW,NB,NW,NB,NW,WB WBWWNBNWNBNWNBNWWB #_|.|.|.# 11,10,01,00,01,00,01,00,11 111001000100010011 ▮_|.|.|.▮
V NB,WW,WB,NW,NB,NW,NB,NW,WB NBWWWBNWNBNWNBNWWB |_#.|.|.# 01,10,11,00,01,00,01,00,11 011011000100010011 |_▮.|.|.▮
W WB,WW,WB,NW,NB,NW,NB,NW,NB WBWWWBNWNBNWNBNWNB #_#.|.|.| 11,10,11,00,01,00,01,00,01 111011000100010001 ▮_▮.|.|.|
X NB,WW,NB,NW,WB,NW,NB,NW,WB NBWWNBNWWBNWNBNWWB |_|.#.|.# 01,10,01,00,11,00,01,00,11 011001001100010011 |_|.▮.|.▮
Y WB,WW,NB,NW,WB,NW,NB,NW,NB WBWWNBNWWBNWNBNWNB #_|.#.|.| 11,10,01,00,11,00,01,00,01 111001001100010001 ▮_|.▮.|.|
Z NB,WW,WB,NW,WB,NW,NB,NW,NB NBWWWBNWWBNWNBNWNB |_#.#.|.| 01,10,11,00,11,00,01,00,01 011011001100010001 |_▮.▮.|.|
0 NB,NW,NB,WW,WB,NW,WB,NW,NB NBNWNBWWWBNWWBNWNB |.|_#.#.| 01,00,01,10,11,00,11,00,01 010001101100110001 |.|_▮.▮.|
1 WB,NW,NB,WW,NB,NW,NB,NW,WB WBNWNBWWNBNWNBNWWB #.|_|.|.# 11,00,01,10,01,00,01,00,11 110001100100010011 ▮.|_|.|.▮
2 NB,NW,WB,WW,NB,NW,NB,NW,WB NBNWWBWWNBNWNBNWWB |.#_|.|.# 01,00,11,10,01,00,01,00,11 010011100100010011 |.▮_|.|.▮
3 WB,NW,WB,WW,NB,NW,NB,NW,NB WBNWWBWWNBNWNBNWNB #.#_|.|.| 11,00,11,10,01,00,01,00,01 110011100100010001 ▮.▮_|.|.|
4 NB,NW,NB,WW,WB,NW,NB,NW,WB NBNWNBWWWBNWNBNWWB |.|_#.|.# 01,00,01,10,11,00,01,00,11 010001101100010011 |.|_▮.|.▮
5 WB,NW,NB,WW,WB,NW,NB,NW,NB WBNWNBWWWBNWNBNWNB #.|_#.|.| 11,00,01,10,11,00,01,00,01 110001101100010001 ▮.|_▮.|.|
6 NB,NW,WB,WW,WB,NW,NB,NW,NB NBNWWBWWWBNWNBNWNB |.#_#.|.| 01,00,11,10,11,00,01,00,01 010011101100010001 |.▮_▮.|.|
7 NB,NW,NB,WW,NB,NW,WB,NW,WB NBNWNBWWNBNWWBNWWB |.|_|.#.# 01,00,01,10,01,00,11,00,11 010001100100110011 |.|_|.▮.▮
8 WB,NW,NB,WW,NB,NW,WB,NW,NB WBNWNBWWNBNWWBNWNB #.|_|.#.| 11,00,01,10,01,00,11,00,01 110001100100110001 ▮.|_|.▮.|
9 NB,NW,WB,WW,NB,NW,WB,NW,NB NBNWWBWWNBNWWBNWNB |.#_|.#.| 01,00,11,10,01,00,11,00,01 010011100100110001 |.▮_|.▮.|
* NB,WW,NB,NW,WB,NW,WB,NW,NB NBWWNBNWWBNWWBNWNB |_|.#.#.| 01,10,01,00,11,00,11,00,01 011001001100110001 |_|.▮.▮.|
- NB,WW,NB,NW,NB,NW,WB,NW,WB NBWWNBNWNBNWWBNWWB |_|.|.#.# 01,10,01,00,01,00,11,00,11 011001000100110011 |_|.|.▮.▮
% NB,NW,NB,WW,NB,WW,NB,WW,NB NBNWNBWWNBWWNBWWNB |.|_|_|_| 01,00,01,10,01,10,01,10,01 010001100110011001 |.|_|_|_|
NB,WW,WB,NW,NB,NW,WB,NW,NB NBWWWBNWNBNWWBNWNB |_#.|.#.| 01,10,11,00,01,00,11,00,01 011011000100110001 |_▮.|.▮.|
$ NB,WW,NB,WW,NB,WW,NB,NW,NB NBWWNBWWNBWWNBNWNB |_|_|_|.| 01,10,01,10,01,10,01,00,01 011001100110010001 |_|_|_|.|
. WB,WW,NB,NW,NB,NW,WB,NW,NB WBWWNBNWNBNWWBNWNB #_|.|.#.| 11,10,01,00,01,00,11,00,01 111001000100110001 ▮_|.|.▮.|
/ NB,WW,NB,WW,NB,NW,NB,WW,NB NBWWNBWWNBNWNBWWNB |_|_|.|_| 01,10,01,10,01,00,01,10,01 011001100100011001 |_|_|.|_|

Frank.white (talk) 17:21, 26 August 2017 (UTC)[reply]