Anonim

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.