Windows 10 Insider Preview Build 18875 (20H1)
W odcinku 9 drugiego sezonu Log Horizon, kiedy ...
Shiroe zginęła i pojawiła się na nieoficjalnym 14. serwerze Elder Tale, serwerze testowym, który miał znajdować się na Księżycu zamiast na Ziemi,
... sprawdził lokalizację i okno dialogowe było w większości zniekształcone, zapisane dla nazwy lokalizacji Mare Tranquillitatis.
Czy zniekształcony tekst można odszyfrować, czy jest to po prostu śmieci?
Tak, zniekształcony tekst jest wynikiem działania mojibake, w którym oryginalny tekst w języku japońskim, zakodowany w kodowaniu Shift-JIS, jest dekodowany za pomocą kodowania Windows-1256.
Jeśli kiedykolwiek otworzysz japońską stronę internetową lub plik tekstowy zakodowany w kodowaniu Shift-JIS (zestaw znaków 2-bajtowych) pod jakimś kodowaniem zachodnim w systemie Windows (zestaw znaków 1-bajtowych), zobaczysz wysoką częstotliwość ��
w połączeniu z inną postacią w wynikowym widoku. Ponieważ zauważyłem, że na obrazie są znaki arabskie, użyłem jednego z moich istniejących plików tekstowych, który jest zakodowany w Shift-JIS i spróbowałem otworzyć go z kodowaniem arabskim (Windows) w przeglądarce i odkryłem, że arabski (Windows) lub kodowanie zachodnie ma to samo mapowanie dla ��
i ��
(co jest kolejnym częstym znakiem w zniekształconym tekście).
Po porównaniu z prawidłowo wyrenderowanym oknem stanu lokalizacji i pewnymi domysłami, udało mi się zdekodować zniekształcony tekst na poprawny tekst w języku japońskim (nawiasy i zostały dodane dla przejrzystości i nie są dekodowane z zniekształconego tekstu):
������������������ ��������������� ��������������� ��������������� ������������ ���������������/��������������������������� ��������������� ������������������������ ������������������������ ���������������/������������ ���������������/������������
Tłumaczenie:
Moon Server Moon Server Isolated zone/No monster PVP allowed Special skills allowed Entry restriction/Restricted Exit restriction/Restricted
dodatek
Aby sprawdzić wynik, możesz użyć następującego fragmentu kodu Python 3:
garbled = '��T��[��o��[\n������T��[��o��[\n��]��[�����\n������T��[��o��[\n����������\n�����������]��[�����/������������X��^��[��o��������������\n���������������\n�����������s������������\\���������\n��@���S��������Z��g���p��������\\\n��@��i����������������/�����������\xa0�����\n��@�������o�����������/�����������\xa0�����' print(garbled.encode('Windows-1256').decode('Shift-JIS'))
Poniżej znajduje się plik tylko podgląd źródło1 mojibake'a do porównania z obrazkiem:
1 Poniższy tekst zawiera znak od lewej do prawej U + 200E, który zapobiega renderowaniu znaków arabskich od prawej do lewej i zmienianiu ich kształtów na podstawie ich położenia. Innym problemem, który uniemożliwia proste kopiowanie, jest obecność spacji U + 00A0 No-Break, która jest konwertowana na spację podczas kopiowania z przeglądarki.
�����T��������[��������o��������[��� ���������������T��������[��������o��������[��� �����]��������[�������������� ���������������T��������[��������o��������[��� ���������������������� ��������������������������]��������[��������������/������������������������������X��������^��������[��������o����������������������������������� ��������������������������������� ��������������������������s������������������������������\������������������������ �����@���������S��������������������Z��������g���������p��������������������\��� �����@��������i�������������������������������������/��������������������������������������������� �����@�������������������o��������������������������/���������������������������������������������
1 - „PvP dozwolone”: Huh. Ciekawe, czy to okaże się ważne.