ISBN-13 to ISBN-10
If for some reason you need to convert an ISBN-13 to ISBN-10 (one being that Amazon doesn't support ISBN-13 in product affiliate links) then you need not only to remove the first three characters. You also need to recompute the checksum.
Here is a piece of code that I wrote to handle this conversion:
public static String Isbn13to10(String isbn13)
{
if (String.IsNullOrEmpty(isbn13))
throw new ArgumentNullException("isbn13");
isbn13 = isbn13.Replace("-", "").Replace(" ", "");
if (isbn13.Length != 13)
throw new ArgumentException("The ISBN doesn't contain 13 characters.", "isbn13");
String isbn10 = isbn13.Substring(3, 9);
int checksum = 0;
int weight = 10;
foreach (Char c in isbn10)
{
checksum += (int)Char.GetNumericValue(c) * weight;
weight--;
}
checksum = 11-(checksum % 11);
if (checksum == 10)
isbn10 += "X";
else if (checksum == 11)
isbn10 += "0";
else
isbn10 += checksum;
return isbn10;
}
I use this to create the Amazon affiliate links on Clair de Bulle, the famous French comics website of my wife. Yes, it's the holidays season, so I have to work for her ;-)