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

Which data type should be used for ISBN10 and ISBN13?

根据ISBN10的算法,校验位可以是X,也就是说,它可能不是一个数字。 但是 google 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";
    }
);

ISBN-10 理论上应该在 2007 年之前被 ISBN-13 取代。显然,这对于已经售出的出版物来说是不可能的,一些出版商仍然保持 ISBN-10 而不是改为 ISBN-13(在与某些制造商维护 UPC-A 而不是 EAN-13 或 GS​​i 的方式相同。)

要将 USBN-10 转换为 USBN-13,只需取 USBN 的前 9 位数字,在其前面加上 978,然后使用标准 EAN 算法计算校验位。使用 13 位数字结果作为查找项目的密钥(作为 64 位无符号整数)。

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

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

根据您的应用,您可能希望考虑如何处理 ISMN(音乐)或 ISSN(期刊)编号。期刊更成问题。条形码扩展通常会产生一个月或一周的出版时间,但 -13 版本保持不变。这对于 seller 或类似的物品来说很好,因为 whatever-01 将是一月,这些已经过时了(因此不再有库存)到次年 1 月,届时将使用相同的编号。对于像图书馆这样的档案功能来说不太好,但是...

感谢大家提供有用的答案。我终于发现 google 的原始回复是字符串格式。由于我的 json 打印机,它被打印成一个整数。