Mam dokument tekstowy, który powinien być napisany w języku rosyjskim, ale zamiast tego wydaje się być ascii:
Óñòàíîâêà:
1)Çàïóñêàåì QuidamStudioSetup3.15.exe
2)Ïðè çàïðîñå ñåðèéíîãî íîìåðà ââîäèì
Jak przekonwertować to na czytelne rosyjskie znaki Unicode?
Odpowiedzi:
To nie jest „ASCII” ani „ASCII rosyjski”.
Zanim Unicode stał się powszechny, większość systemów komputerowych używała kodowania znaków ISO-8859, z czego 16 dla każdego regionu (środkowoeuropejski, cyrylica, grecki ...). System Windows miał własne „strony kodowe”, bardzo podobne, ale z dodatkowymi glifami w nieużywanych zakresach. Wszystkie te kodowania znaków są 8-bitowe i różnią się tylko w drugiej połowie (128-255).
Problem z tymi kodowaniami polega na tym, że prawie niemożliwe jest, aby program określił, które kodowanie zostało użyte do zapisania pliku, chyba że zostało to określone wprost (np. Na stronach HTML; jednak zwykłe pliki tekstowe nie mają takich znaczników metadanych). Przeczytaj artykuł w Wikipedii na temat Mojibake, aby uzyskać bardziej szczegółowy opis.
W twoim przykładzie dokument został zapisany przy użyciu Windows-1251 (cyrylica), ale twój program odczytuje go tak, jakby to był Windows-1252 (Europa Zachodnia), który ma bardzo różne znaki w tych samych pozycjach. Dla komputera wygląda to całkiem dobrze - nie rozumie języków ani skryptów. (Są jednak programy, które przeprowadzają analizy statystyczne w celu ustalenia poprawnego kodowania - niektóre przeglądarki mają taką funkcję.)
Istnieje kilka sposobów konwersji takiego tekstu na Unicode:
Skorzystaj z narzędzi online, takich jak ten lub ten .
Użyj swojej przeglądarki internetowej:
Przeciągnij
.txt
plik do przeglądarki.Z Widok → Kodowanie znaków (lub Firefox → Web Developer → Kodowanie znaków lub Klucz → Narzędzia → Kodowanie ), wybierz właściwe oryginalne kodowanie: „Cyrylica (Windows-1251)” w twoim przypadku.
Użyj edytora tekstu Notepad2 :
Otwórz plik.
Z menu Plik → Kodowanie → Przekoduj ... , wybierz właściwe oryginalne kodowanie.
Użyj GNU
iconv
z binariami Windows albo z GnuWin32 lub Gettext dla Win32 .Notatnik Windows poprawnie odczyta tekst zakodowany w UTF-8 i UTF-16.
źródło
Możesz przekonwertować kodowanie za pomocą programu takiego jak iconv - ale musisz wiedzieć, jakie kodowanie zostało użyte.
Wygląda na Windows-1251 według losowej strony znalezionej przez Google.
Nie znam rosyjskiego, ale wklejenie go na translate.google.com sugeruje, że powyższe jest prawdopodobne:
Więc ...
Należy przekonwertować plik testowy na coś, co można otworzyć i odczytać w Notatniku
źródło