5

我正在做一个关于 ISBN 条码扫描的项目。我尝试了许多扫描应用程序,但在扫描此条码后:在此处输入图像描述

该应用程序只给了我条形码 9780749423490。但我需要获得的是 ISBN 代码 0749423498,因为它在我图书馆的数据库中。有什么方法可以得到吗?

谁能解释这两个代码之间的区别?为什么条码号和 ISBN 条码号不同?有些书是一样的,有些书是不同的吗?谢谢!

4

3 回答 3

7

看起来混淆是“ISBN 10”和“ISBN 13”标准之间的区别。

ISBN 机构网站常见问题解答说:

"Does the ISBN-13 have any meaning imbedded in the numbers? 
The five parts of an ISBN are as follows:

 1. The current ISBN-13 will be prefixed by "978"
 2. Group or country identifier which identifies a national or geographic grouping of publishers
 3. Publisher identifier which identifies a particular publisher within a group
 4. Title identifier which identifies a particular title or edition of a title
 5. Check digit is the single digit at the end of the ISBN which validates the ISBN"

所以978显然只是填充物。在那之后,接下来的9个数字在两个数字中显然是相同的。两个数字中的最后一个数字是校验位,在 ISBN 10 和 ISBN 13 中是不同的。有关详细信息,请参阅此 Wikipedia 文章,但两个公式是:

对于 ISBN 10(前一位),所有数字的总和乘以 10-9-8-7-6-5-4-3-2-1 mod 11 应为 0:

0*10 + 7 *9 + 4*8 + 9*7 + 4*6 + 2*5 + 3*4 + 4*3 + 9*2 + 8*1 % 11 == 0

对于 ISBN 13(底部),奇数位之和 * 1 加上偶数位之和 * 3 应为 0。这包括前导 978。(这类似于 UPC 代码为“用户... ” 提到但与维基百科文章中提到的略有不同):

9*1 + 7*3 + 8*1 + 0*3 + 7*1 + 4*3 + 9*1 + 4*3 + 2*1 + 3*3 + 4*1 + 9*3 + 0*1 % 10 == 0

因此,您可以从 ISBN 13(底部)代码中获取 ISBN 10 代码(顶部),如下所示:

isbnBaseCode = <9780749423490 from the 4th to 12th characters>

isbn10CheckDigit = 11 - (isbnBaseCode[0]*10 + isbnBaseCode[1]*9 + ... + isbnBaseCode[8]*2) % 11

isbnCode10 = isbnBaseCode + isbn10CheckDigit
于 2012-08-04T06:34:32.957 回答
1

您的问题的长短是它们实际上都是 ISBN。一种是 10 位格式,另一种是较新的 13 位格式。

978 074942349 0
    074942349 8

978 是前缀,最后一个数字都是校验位。您正在扫描的商品上的条形码仅代表 13 位格式。

根据http://www.isbn.org/standards/home/isbn/transition.asp 您始终可以从以 978 开头的 13 位 ISBN 转换为 10 位格式,并提供在线转换器的链接。它还讨论了 979 前缀。我不相信 979 前缀正在被使用,但很高兴知道它们将来可能会被使用。

在图书馆应用程序空间中工作后,在搜索图书馆目录项目时,记录所包含的信息会有很大差异。单册记录,特别是关于 ISBN 的记录,可以包含 10 位 ISBN、13 位 ISBN,两者都包含,或者都不包含。因此,要找到一个项目,您可能必须尝试两种格式。我相信有些系统,如果你的搜索类型设置为 ISBN,实际上会检查提交的 ISBN 并自动搜索这两种格式。

取决于你想做什么。许多图书馆搜索功能允许使用通配符,这样可以更轻松地找到您要查找的项目。例如:

'if the isbn has a length of 13 and starts with 978 
    remove the first 3 (the 978) and last digit (the check digit)
    add a wildcard character to the front and back
    begin search
end if

例如 9780749423490 会变成 *07494234* 缺点是它可能会返回多个结果。即使发生这种情况,它也可能只有几件物品,而您正在寻找的物品(如果有的话)很容易被发现。

正如其他人所提供的,关于 ISBN 的 Wikipedia 文章详细介绍了如何在 10 位和 13 位数字格式之间进行转换。 http://en.wikipedia.org/wiki/International_Standard_Book_Number

于 2012-08-04T07:47:32.503 回答
0

以 978 开头的数字是产品代码,特别是 UPC(通用产品代码),其中包括 ISBN,但末尾没有校验位。查看维基百科上的 ISBN 以获取生成校验位的代码,您将能够从 UPC 重建 ISBN。

于 2012-08-04T06:10:40.407 回答