Przejdź do treści
100% lokalnie

Detektor znaków

Odgadnij oryginalne kodowanie zniekształconego tekstu i odzyskaj je.

Wejście
Wynik

Detektor znaków

Wklej tekst w miejscu, w którym litery akcentowane zamieniły się w ciągi znaków, takie jak „Príliš” lub „GrüüŸe”, a narzędzie zgadnie, co poszło nie tak. Typową przyczyną jest otwarcie, zapisanie lub przesłanie pliku UTF-8 przez coś, co zakłada jednobajtową stronę kodową — Windows-1250 lub ISO-8859-2 dla tekstu środkowoeuropejskiego, Windows-1252 dla tekstu zachodnioeuropejskiego. Każdy znak akcentowany miał pierwotnie dwa lub trzy bajty w formacie UTF-8; czytaj po jednym bajcie na niewłaściwej stronie kodowej, stają się dokładnie tego rodzaju podwójnymi śmieciami.

Detektor działa poprzez próbę odwrócenia każdej potencjalnej strony kodowej i sprawdzenie, czy wynikiem jest poprawny format UTF-8 — test strukturalny, który powoduje, że poprawnie zakodowany tekst zasadniczo nigdy nie przechodzi przez przypadek, dlatego funkcja automatycznego wykrywania może zastosować poprawkę z prawdziwą pewnością, a nie rzut monetą. Po znalezieniu dopasowania pokazuje odgadnięte oryginalne kodowanie, odgadnięte błędnie odczytane kodowanie i odzyskany tekst, a także liczbę znaków usuniętych przez poprawkę (mojibake jest zawsze dłuższy niż tekst, z którego pochodzi, ponieważ każdego uszkodzonego znaku było kilka).

Automatyczne wykrywanie zgaduje tylko możliwy do sprawdzenia kierunek — UTF-8 pokazany na niewłaściwej stronie kodowej. Rzadszy przypadek odwrotny, plik systemu Windows-1250 lub ISO-8859-2 odczytywany jako Latin-1, nie ma równoważnej kontroli strukturalnej, dlatego jest oferowany jako opcja ręczna na liście rozwijanej, gdy już podejrzewasz, że tak się stało, zamiast zgadywać po cichu. Jest to narzędzie heurystyczne, a nie gwarancja: tekst będący mieszanką kilku języków lub zawierający symbole spoza zakresu docelowej strony kodowej może nie zostać odzyskany i jest to wyraźnie wyrażone, zamiast zwracać pewną, błędną odpowiedź.

Wszystko działa lokalnie w przeglądarce przy użyciu tych samych tabel kodowania, których używają przeglądarki do renderowania stron internetowych — nic, co wkleisz, nie zostanie nigdzie przesłane, co ma tutaj większe znaczenie niż większość narzędzi, ponieważ zniekształcony tekst często pochodzi z prawdziwych danych klientów, wyeksportowanych baz danych lub zgłoszeń do pomocy technicznej.

Częste pytania

Skąd wie, jakie kodowanie zostało użyte?
Ponownie koduje zniekształcony tekst pod każdą kandydującą stroną kodową i sprawdza, czy powstałe bajty tworzą prawidłowy kod UTF-8. Prawidłowo zakodowany tekst zasadniczo nigdy nie przechodzi tej kontroli przez przypadek, więc dopasowanie jest wiarygodnym sygnałem tego, co się stało — nie pewnym, ale bliskim.
Dlaczego automatyczne wykrywanie nie oferuje naprawy „czytaj jako Latin-1”?
Ten kierunek nie ma równoważnego sposobu na samoweryfikację — wiele wartości bajtów to prawidłowe litery na więcej niż jednej stronie kodowej, więc może wygenerować wiarygodnie wyglądający, ale błędny tekst. Wybierz go ręcznie z listy rozwijanej, gdy już wiesz, że taka jest sytuacja.
Czy może naprawić tekst za pomocą emoji lub języków mieszanych?
Tylko jeśli każdy znak w tekście należy do kandydującej strony kodowej. Pojedynczy emoji lub znak spoza tego zakresu oznacza, że nie można odwrócić całej linii, a narzędzie pozostawia ją bez zmian, zamiast zgadywać.
Czy to na pewno jest prawidłowe?
Nie — to heurystyka, a nie certyfikowany konwerter. Jest bardzo niezawodny w rozpoznawaniu prawdziwej strony kodowej UTF-8-as-legacy-codepage mojibake i wyraźnie powie, kiedy nie będzie mógł znaleźć bezpiecznego rozwiązania, zamiast zwracać pewną błędną odpowiedź.
Czy mój tekst jest gdzieś przesłany?
Nie. Zarówno wykrywanie, jak i odzyskiwanie odbywa się całkowicie w przeglądarce przy użyciu tych samych tabel kodowania, które już udostępnia do renderowania stron internetowych — tekst nigdy nie opuszcza urządzenia.