Anonim

Operētājsistēmas Windows 10 Insider Preview Build 18875 (20H1)

Log Horizon otrās sezonas 9. sērijā, kad ...

Širo nomira un parādījās uz vecākā Tale neoficiālā testa servera, kas bija paredzēts uz Mēness, nevis uz Zemes, 14. serverī.

... viņš pārbaudīja atrašanās vietu, un dialoglodziņš lielākoties bija sajaukts, saglabāts atrašanās vietas nosaukumam Ķēve Tranquillitatis.

Vai satricināto tekstu var atšifrēt vai arī tie ir vienkārši atkritumi?

Jā, nesakārtotais teksts ir rezultāts mojibake, kur oriģinālais teksts japāņu valodā, kas kodēts Shift-JIS kodējumā, tiek atšifrēts ar Windows-1256 kodējumu.

Ja kādreiz atverat japāņu tīmekļa lapu vai teksta failu, kas kodēts Shift-JIS kodējumā (2 baitu rakstzīmju kopa), izmantojot kādu rietumu kodējumu sistēmā Windows (1 baitu rakstzīmju kopa), redzēsit �� iegūtais skats ir savienots pārī ar kādu citu rakstzīmi. Tā kā es novēroju, ka attēlā ir arābu rakstzīmes, es izmantoju vienu no esošajiem teksta failiem, kas ir kodēti Shift-JIS, un mēģināju to pārlūkprogrammā atvērt ar arābu (Windows) kodējumu, un es uzzināju, ka arābu (Windows) vai Rietumu kodējumam ir tāda pati kartēšana �� un �� (kas ir vēl viens kopīgs raksturs sajauktā tekstā).

Pēc tam, kad salīdzināju ar pareizi atveidotu atrašanās vietas statusa logu un dažiem minējumiem, man izdevās atšifrēt sakārtoto tekstu pareizā japāņu valodā (iekavas un tiek pievienotas skaidrības labad un netiek dekodētas no sajauktā teksta):

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

Tulkojums:

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

Pielikums

Lai pārbaudītu rezultātu, varat izmantot šādu Python 3 koda daļu:

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')) 

Zemāk ir tikai skatāms avots1 mojibake salīdzināšanai ar attēlu:

1 Zemāk esošajā tekstā ir U + 200E atzīme no kreisās uz labo, lai neļautu arābu rakstzīmēm renderēt no labās uz kreiso un mainīt formas, pamatojoties uz to atrašanās vietu. Vēl viena problēma, kas novērš tiešu kopēšanu, ir saistīta ar U + 00A0 No-Break Space klātbūtni, kas, pārkopējot no pārlūkprogrammas, tiek pārveidota par vietu.

�����T��������[��������o��������[��� ���������������T��������[��������o��������[��� �����]��������[�������������� ���������������T��������[��������o��������[��� ���������������������� ��������������������������]��������[��������������/������������������������������X��������^��������[��������o����������������������������������� ��������������������������������� ��������������������������s������������������������������\������������������������ �����@���������S��������������������Z��������g���������p��������������������\��� �����@��������i�������������������������������������/��������������������������������������������� �����@�������������������o��������������������������/��������������������������������������������� 
1
  • "PvP atļauts": Huh. Interesanti, vai tas galu galā būs svarīgs.