Anonim

Windows 10 Insider Preview Build 18875 (20H1)

V epizóde 9 druhej sezóny Log Horizon, keď ...

Shiroe zomrel a objavil sa na neoficiálnom 14. serveri Elder Tale, testovacom serveri, ktorý bol nastavený na Mesiac namiesto na Zem,

... skontroloval miesto a dialóg bol väčšinou skomolený, uložený pre názov miesta Mare Tranquillitatis.

Dá sa skomolený text dešifrovať, alebo ide iba o smeti?

Áno, skomolený text je výsledkom mojibake, kde je pôvodný text v japončine, kódovaný v kódovaní Shift-JIS, dekódovaný kódovaním Windows-1256.

Ak niekedy otvoríte japonskú webovú stránku alebo textový súbor kódovaný v kódovaní Shift-JIS (dvojbajtová znaková sada) v rámci nejakého západného kódovania v systéme Windows (jednobajtová znaková sada), uvidíte vysokú frekvenciu �� spárovaný s iným znakom vo výslednom zobrazení. Pretože som si všimol, že na obrázku sú arabské znaky, použil som jeden zo svojich existujúcich textových súborov, ktoré sú zakódované v Shift-JIS, a skúsil som ich otvoriť v prehliadači kódovaním arabčiny (Windows), a zistil som, že arabčina (Windows) alebo Westernové kódovanie má rovnaké mapovanie pre �� a �� (čo je ďalší spoločný znak v skomolenom texte).

Po porovnaní so správne vykresleným stavovým oknom polohy a nejakými dohadmi sa mi podarilo dekódovať skomolený text do správneho japonského textu (zátvorky a sú kvôli prehľadnosti pridané a nie sú dekódované od skomoleného textu):

������������������ ��������������� ��������������� ��������������� ������������ ���������������/��������������������������� ��������������� ������������������������ ������������������������ ���������������/������������ ���������������/������������ 

Preklad:

 Moon Server  Moon Server  Isolated zone/No monster  PVP allowed Special skills allowed Entry restriction/Restricted Exit restriction/Restricted 

Dodatok

Na kontrolu výsledku môžete použiť nasledujúcu časť kódu Pythonu 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')) 

Nižšie je iba na zobrazenie zdroj1 mojibake pre porovnanie s obrázkom:

1 Nasledujúci text obsahuje značku U + 200E zľava doprava, ktorá zabráni arabským znakom v vykresľovaní sprava doľava a meniť ich tvary na základe ich polohy. Ďalším problémom, ktorý znemožňuje priame kopírovanie, je prítomnosť priestoru bez prerušenia U + 00A0, ktorý sa pri kopírovaní z prehliadača prevedie na priestor.

�����T��������[��������o��������[��� ���������������T��������[��������o��������[��� �����]��������[�������������� ���������������T��������[��������o��������[��� ���������������������� ��������������������������]��������[��������������/������������������������������X��������^��������[��������o����������������������������������� ��������������������������������� ��������������������������s������������������������������\������������������������ �����@���������S��������������������Z��������g���������p��������������������\��� �����@��������i�������������������������������������/��������������������������������������������� �����@�������������������o��������������������������/��������������������������������������������� 
1
  • „PvP povolené“: Huh. Zaujíma vás, či to nakoniec bude dôležité.