ISBN変換

やらなきゃいけない事は他にもいろいろあるのにまたツールを作った。
以前からAmazonで言うところのISBN-13のハイフンの打つタイミングがよく分からないので調べてみたら桁数は違うけど規則性がある事を発見した。
例えば、978-4088745213だと正式には978-4-08-874521-3になる。
wikipedia風に言うと「接頭記号」-「グループ記号」-「出版者記号」-「書名記号」-「チェックデジット」となる。「接頭記号」と「グループ記号」と「チェックデジット」は桁数が決まってるので問題無いが「出版者記号」「書名記号」は桁数が決まっていない、そこでISBN 出版社リストを見ていると「出版者記号」の頭の2桁を見ると桁数が分かる事を発見した。
PHPで書くと下記の様な感じだ($aに「出版者記号」の頭の2桁が代入されてるとする)
if ($a < 25) $keta = 2; else if ($a < 75) $keta = 3; else if ($a < 86) $keta = 4; else if ($a < 90) $keta = 5; else if ($a < 99) $keta = 6; else $keta = 7; 更に調べてみるとISBN-10とISBN-13は現在のところ変換可能という事が分かった。 ISBN-13とISBNの大きな違いは「接頭記号」が付くかどうかで、「接頭記号」には978と979があるという事でISBN-10からISBN-13への変換は無理と思いこんでいたんだけど実際は979は使われていないみたい。そうなると978付けて「チェックデジット」を付け直すと変換が可能という事になる。 ISBN変換

Tags: ,

トラックバック

コメントを書く