You did not say which language you are using so I answer using java. Other languages have similar constructs. Also, you mean diacritics, not punctuation (.,?!...)
The collator class supports the strength of comparison. For example, for Czech, difference in diacritics is considered to be a secondary difference.
Or you might want to remove any diacritics prior comparison by unicode canonical decomposition (decomposing all characters into basic letters + diacritics) and then removing the diacritics by a simple regex (see this SO question for an explanation of InCombiningDiacriticalMarks
). In java:
public static String removeDiacritics(String str) {
return Normalizer
.normalize(string, Form.NFD) // decompose into letters+diacritics
.replaceAll("\\p{InCombiningDiacriticalMarks}+", ""); // remove diacritics
}