根据ISBN10的算法,校验数字可以是X,这意味着它可能不是一个数字。但是google的输出:https://www.googleapis.com/books/v1/volumes?q=isbn:xxx使用ISBN10和ISBN13的整数类型。为什么?
P.S.:以下是google输出的一部分:
industryIdentifiers = (
{
identifier = 7542637975;
type = "ISBN_10";
},
{
identifier = 9787542637970;
type = "ISBN_13";
}
);发布于 2016-02-03 06:06:35
理论上,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月份,当使用同样数量的商品时,这些商品将完全过时(因此不再有更多库存)。但不太适合像图书馆这样的档案功能.
发布于 2016-02-03 08:48:16
谢谢大家给出的有用答案。我终于发现google的原始响应是字符串格式的。就因为我的json打印机,它就像个整数。
https://stackoverflow.com/questions/35168817
复制相似问题