Very good article, but I am left with this question: is there any way to compare two strings representing names that is complete and correct, regardless of casing in the two original strings?
E.G: in Python 3, it's recommend to use str.casefold() instead of str.lower() for this:
>>> "Straße".upper().lower()
'strasse'
>>> "Straße".lower()
'straße'
>>> "Straße".casefold()
'strasse'
>>>
Depending of the context, a little str.strip() and/or a str.split() + str.join() may also help. User usually don't want to consider blanks when entering data (e.g: an address), while it's important for machines (e.g: a password).Now like @lmm said, this only normalize the codepoints. Meaning is of course, impossible to be sure that way.