Anonim

Windows 10 Insider Preview Build 18875 (20H1)

Dalam episod 9 musim kedua Log Horizon, ketika ...

Shiroe mati dan muncul di pelayan Elder Tale ke-14 yang tidak rasmi, pelayan ujian, yang ditetapkan berada di Bulan dan bukannya di Bumi,

... dia memeriksa lokasi dan dialognya sebagian besar rusak, disimpan untuk nama lokasi Mare Tranquillitatis.

Bolehkah teks yang rosak itu didekripsi, atau hanya sampah?

Ya, teks yang rusak adalah hasil mojibake, di mana teks asalnya dalam bahasa Jepun, yang dikodkan dalam pengekodan Shift-JIS, disahkod oleh pengekodan Windows-1256.

Sekiranya anda pernah membuka laman web Jepun atau fail teks yang dikodkan dalam pengekodan Shift-JIS (set aksara 2-byte) di bawah beberapa pengekodan Barat di Windows (set watak 1-bait), anda akan melihat frekuensi tinggi �� dipasangkan dengan beberapa watak lain dalam paparan yang dihasilkan. Oleh kerana saya melihat bahawa terdapat watak-watak Arab dalam gambar, saya menggunakan salah satu fail teks saya yang ada yang dikodkan dalam Shift-JIS dan mencuba membukanya dengan pengekodan Arab (Windows) dalam penyemak imbas, dan saya mendapat tahu bahawa bahasa Arab (Windows) atau pengekodan Barat mempunyai pemetaan yang sama untuk �� dan �� (yang merupakan watak umum lain dalam teks yang rosak).

Setelah membandingkan dengan tetingkap status lokasi yang diberikan dengan betul dan beberapa tekaan, saya berjaya menyahkod teks yang rosak menjadi teks Jepun yang betul (tanda kurung dan ditambahkan untuk kejelasan dan tidak disahkod dari teks yang rosak):

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

Terjemahan:

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

Lampiran

Untuk menyemak semula hasilnya, anda boleh menggunakan kod Python 3 berikut:

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

Di bawah ini adalah lihat sahaja sumber1 mojibake untuk perbandingan dengan gambar:

1 Teks di bawah ini mengandungi U + 200E Tanda Kiri-ke-Kanan untuk mengelakkan watak-watak Arab memaparkan dari kanan ke kiri dan mengubah bentuknya berdasarkan kedudukannya. Masalah lain yang menghalang penyalinan secara lurus adalah kerana adanya Ruang Tanpa Rehat U + 00A0, yang ditukarkan ke ruang ketika disalin dari penyemak imbas.

�����T��������[��������o��������[��� ���������������T��������[��������o��������[��� �����]��������[�������������� ���������������T��������[��������o��������[��� ���������������������� ��������������������������]��������[��������������/������������������������������X��������^��������[��������o����������������������������������� ��������������������������������� ��������������������������s������������������������������\������������������������ �����@���������S��������������������Z��������g���������p��������������������\��� �����@��������i�������������������������������������/��������������������������������������������� �����@�������������������o��������������������������/��������������������������������������������� 
1
  • "PvP dibenarkan": Huh. Ingin tahu apakah itu akan menjadi penting.