Anonim

Windows 10 Sisäpiirin esikatselun koontiversio 18875 (20H1)

Log Horizonin toisen kauden jaksossa 9, kun ...

Shiroe kuoli ja ilmestyi testipalvelimen, vanhin Talen epäviralliselle 14. palvelimelle, jonka oli tarkoitus olla Kuulla eikä maapallolla,

... hän tarkisti sijainnin ja valintaikkuna oli pääosin hämmentynyt, tallennettu sijainnin nimeksi Mare Tranquillitatis.

Voiko sekaannettu teksti purkaa, vai ovatko ne yksinkertaisesti roskia?

Kyllä, sekaannettu teksti on seurausta mojibake-ohjelmasta, jossa Shift-JIS-koodaukseen koodattu alkuperäinen japaninkielinen teksti dekoodataan Windows-1256-koodauksella.

Jos avaat koskaan japanilaisen verkkosivun tai tekstitiedoston, joka on koodattu Shift-JIS-koodauksessa (2-tavuinen merkistö) jonkin länsimaisen Windows-koodauksen alla (1-tavuinen merkistö), näet korkean taajuuden �� pariksi jonkin muun merkin kanssa tuloksena olevassa näkymässä. Koska huomaan, että kuvassa on arabialaisia ​​merkkejä, käytin yhtä olemassa olevasta tekstitiedostostani, joka on koodattu Shift-JIS: ssä, ja yritin avata se selaimen arabiakoodauksella (Windows) ja huomasin, että arabia (Windows) tai länsimaisella koodauksella on sama kartoitus kohteelle �� ja �� (joka on toinen yleinen merkki sekoitetussa tekstissä).

Verrattuani oikein renderoituun sijaintitilaikkunaan ja joitain arvauksia, onnistuin purkaa sekaannetun tekstin oikeaan japaninkieliseen tekstiin (suluet ja lisätään selkeyden vuoksi eikä niitä pureta sekoitetusta tekstistä):

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

Käännös:

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

Liite

Voit tarkistaa tuloksen käyttämällä seuraavaa Python 3 -koodin osaa:

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

Alla on vain näkymä lähde1 mojibakesta vertailtavaksi kuvaan:

1 Alla oleva teksti sisältää U + 200E vasemmalta oikealle -merkin, joka estää arabialaisia ​​merkkejä renderoimasta oikealta vasemmalle ja muuttamasta muotoja sijainnin mukaan. Toinen ongelma, joka estää suoraa kopiointia, johtuu U + 00A0 No-Break Space -tilasta, joka muunnetaan avaruudeksi kopioimalla selaimesta.

�����T��������[��������o��������[��� ���������������T��������[��������o��������[��� �����]��������[�������������� ���������������T��������[��������o��������[��� ���������������������� ��������������������������]��������[��������������/������������������������������X��������^��������[��������o����������������������������������� ��������������������������������� ��������������������������s������������������������������\������������������������ �����@���������S��������������������Z��������g���������p��������������������\��� �����@��������i�������������������������������������/��������������������������������������������� �����@�������������������o��������������������������/��������������������������������������������� 
1
  • "PvP sallittu": Huh. Mietitkö, onko se lopulta tärkeää.