Gaah! Seperating by language would be a bad idea. What happens if you have one french person with an accented character in their name? How do you sort it?
There is a Unicode table that can be use to "decompose" any composite characters. So the first thing to do is decompose anything that comes in. Assuming the table is complete, A with a ring and the Angstrom symbol should both decompose to the letter A followed by the combining ring thingy.
If you know you're decomposing for the purpose of comparing two strings, just throw away the combining symbol, leaving the A.
Now you can just compare the strings.
Sorting gets messier when dealing with Kanji and Hangul, but this method takes care of 99% of the Latin alphabet variants.