ISBN10和ISBN13应使用哪种数据类型?

时间:2016-02-03 04:59:05

标签: isbn

根据ISBN10的算法,校验位可以是X,也就是说,它可能不是数字。 但是谷歌API的输出:https://www.googleapis.com/books/v1/volumes?q=isbn:xxx使用ISBN10和ISBN13的整数类型。为什么呢?

P.S .: 以下是Google API输出的一部分:

industryIdentifiers =                 (
                        {
        identifier = 7542637975;
        type = "ISBN_10";
    },
                        {
        identifier = 9787542637970;
        type = "ISBN_13";
    }
);

2 个答案:

答案 0 :(得分:1)

理论上ISBN-10应该在2007年之前被ISBN-13取代。显然,这对已经出售的出版物来说是不可能的,有些出版商仍然保留ISBN-10而不是改为ISBN-13(在同一版本中)因为一些制造商维持UPC-A而不是EAN-13或GSi。)

要将USBN-10转换为USBN-13,只需取USBN的前9位数字,前缀为978,然后使用标准EAN算法计算校验位。使用13位数结果作为键来定位项目(作为64位无符号整数)。

您始终可以通过删除前3个数字和校验位以及使用ISBN-10算法重新计算校验字符来提取ISBN-10。

这样,您只需要记录13位数版本。如果您有ISBN-10(通过扫描仪阅读)或者您需要生成ISBN-10(出于任何目的),只需应用适当的转换算法。

根据您的应用程序,您可能希望考虑如何处理ISMN(用于音乐)或ISSN(期刊)号码。期刊更成问题。条形码扩展通常会产生一个月或一周的发布,但-13版本保持不变。对于卖家或此类商品来说没什么问题,因为无论 -01将是1月份,这些都是过时的(因此没有 - 在接下来的1月份,当使用相同的数字时,库存时间更长。对于像图书馆这样的档案功能来说不太好......但是......

答案 1 :(得分:0)

谢谢大家的有用答案。我终于发现谷歌的原始回复是字符串格式。它只是因为我的json打印机而打印成整数。