W systemie Windows nazwy plików są przechowywane w standardzie Unicode. Ponieważ istnieją różne punkty kodu Unicode, które wyglądają identycznie, nie zawsze można dokładnie powiedzieć, jaka jest faktycznie nazwa pliku. Na przykład dwa pliki mogą mieć taką samą nazwę, nawet jeśli system operacyjny uznaje te nazwy za różne.
Biorąc pod uwagę plik, jaki jest najłatwiejszy sposób, aby dowiedzieć się, jakie punkty kodu Unicode są w nazwie pliku?
źródło
i
wMailClient.exe
.Użyj skryptu, aby zautomatyzować wykonywanie zadań, które alternatywnie mogą być wykonywane jeden po drugim przez człowieka.
W mojej odpowiedzi na oryginalne pytanie dotyczące przepełnienia stosu w systemie Windows / NTFS znajdują się dwa przydatne skrypty IMHO : dwa pliki o identycznych długich nazwach w tym samym katalogu? .
Dodatek dla uzupełnienia historii. Oto inne podejście do rozwiązania OQ ( moja absolutnie pierwsza próba ). Skrypt porównuje ciągi znaków (np. Nazwy plików) o tej samej długości znak po znaku i wypisuje różne (lub inne niż ANSI):
Wyjście (nieco trudne do zbadania…) Pierwsza tabela (z nagłówkami) jest wyprowadzana z (dostosowanego) niestandardowego polecenia
Get-CharInfo
cmdlet ; ten drugi (bez nagłówków) wyjaśniono poniżej:Objaśnienie drugiego wiersza:
8
pozycja znaku w obu porównywanych ciągache U+0065
sam znak i jego kod Unicode (1. ciąg)#
#
lub=
(odpowiednio inny lub taki sam, ale inny niż ANSI)е U+0435
sam znak i jego kod Unicode (drugi ciąg)МailClient.txt
Pierwszy ciąg sam w sobieМailCliеnt.txt
Sam drugi ciągźródło
Możesz skopiować wkleić nazwy do notatnika ++, a następnie wybrać ASCII -> HEX z podstawowego konwertera pod wtyczkami -> konwerter. Nie konwertuje UTF-8 na ANSI, więc bajty zostają zachowane.
Uwaga: musisz wybrać widok -> Pokaż symbol -> wszystkie znaki, ponieważ NPP nie może wyświetlić HEX i musisz wybrać wszystkie znaki. Oznacza to, że znaki niedrukowalne to także bajty, które wymagają konwersji. Na przykład na zrzucie ekranu linia 1 jest konwertowana na linię 2.
.
(w tym przykładzie zignoruj znaki nowego wiersza CR-LF)
źródło