This is like cmp_nocase(), only that it doesn't use toupper(), tolower() and therefore is agnostic of the current locale, and attempts to compare strings in a UTF8-aware way (or falls back to ASCII if one of the strings isn't UTF8-encoded).