Przybliżona odpowiedź to Comparing Unicode file names the right way.
Zasadniczo zaleca się duże litery, oba ciągi (stosując CharUpper
, CharUpperBuff
lub LCMapString
), a następnie porównać podstawie porównania binarnego (tj memcmp lub wmemcmp nie compareString z niezmiennym regionu). System plików nie wykonuje normalizacji Unicode, a reguły sprawy nie zależą od ustawień regionalnych.
Istnieją niefortunne, niejednoznaczne przypadki, gdy mamy do czynienia z postaciami, których zasady dotyczące obudowy zmieniły się w różnych wersjach Unicode, ale są tak dobre, jak to tylko możliwe.