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é.