Показать полную графическую версию : Кодировка текста
Не могу понять в какой кодировке текст. Все декодере перерыл так и не понял. Текст выглядит во так: CØEÅATÓ B ÚÝCT¾HH¾X PEÕÜOHAX Ü ÁEÒ ÜCÚOÅÓÒOBAHÜ¥ CÚEÇÜAÅÓH¾X
Это русский текст в текстовом файле локализации игры, но в самой игре он отображается русским шрифтом.
такие вещи надо в бинарном виде выклыдывать
зачастую, локализаторам не получается использовать стандартные кодировки, т.к. часть необходимых кодов символов уже занята какими-либо спецсимволами
8Toxa8, очень похоже на не-юникодовый шрифт, символы которого, лежащие в верхней половине кодовой таблицы, в игре интерпретируются как кириллические (так, как это делалось в Win-3.1 и Win95/98).
Но точнее можно было бы сказать если бы вы последовали рекомендации Busla, выложив этот текст в виде тех кодов, которыми он представлен в файле..
такие вещи надо в бинарном виде выклыдывать »
выложив этот текст в виде тех кодов, которыми он представлен в файле.. »
8Toxa8, перевожу на русский ;): упакуйте файл:
в текстовом файле локализации »
в архив и приложите к сообщению, либо выложите на RGhost или Яндекс.Диск.
Могли просто при записи текста на бит сдвинуть или прибавить\вычесть (символы - они тоже числа) - для защиты
8Toxa8, примерно что я предполагал — но веселее: не однобайтная, как я думал, а
— двухбайтная кодировка с использованием 00 вместо 04 для русского (т.е. вроде как чистая латиница),
— для представления русских букв, имеющих аналоги по начертанию в латинице, использована латиница,
— для остальных использована доморощенная перекодировка (видимо чтобы не перехлестнуться с символами, используемыми в других местах — как и предположил Busla).
Исходник и результат на скриншоте.
Сдуру сквозную замену проводил в шестнадцатеричном режиме, шестнадцатеричных кодов на ANSI-коды заглавных русских букв: в HEX-редакторе проще было сквозной заменой символа на символ; при замене был невнимателен и вместо З получил Ц (при том, что истинную Ц подставил правильно), а вместо У — мягкий знак (Ь) при том, что сам мягкий знак сделал правильно. Исправлять не стал: идея и так ясна.
http://mwz-ru.homeserver.com/tests/recode1.gif
PS
Не примазываюсь к чужой славе: использован метод Ш.Холмса из рассказа А.Конан-Дойла "Пляшущие человечки" — при том, что исходной полезной информации здесь было, мягко говоря, гораздо больше, чем в первоисточнике.
не однобайтная, как я думал, а
— двухбайтная кодировка »
Добавлю для 8Toxa8, что файл в кодировке юникод (UTF-16 LE/1200) с BOM. Хотя меня и терзают сомнения, что это сам коллега 8Toxa8 сделал его таким, а оригинальный файл не юникод.
— для представления русских букв, имеющих аналоги по начертанию в латинице, использована латиница,
— для остальных использована доморощенная перекодировка (видимо чтобы не перехлестнуться с символами, используемыми в других местах — как и предположил Busla). »
Вот давно такого не видел, со времён DOS. Словно окунулся в старые славные времена :).
8Toxa8, а что за игра?
Да действительно я удалил лишнее в файле чтобы по меньше весил, видимо нарушил кодировку, изначально он был ANSI. Оригинал во вложении.
Игра 7 Days to Die. Не ожидал что все окажется на столько сложно.
8Toxa8, вот почему я всегда и настаиваю именно на оригинальном файле и в архиве — дабы сохранить в неприкосновенности оригинальный формат, в том числе кодировку, BOM и концы строк.
Да, там оригинально. Файл в кодировке UTF-8 без BOM. На место английского засунут перевод на русский в волапюке из-за того, что оригинальный шрифт не содержит кириллицы, а другие игра не кушает. Посему используют такой подход и перерисованный шрифт.
Добавлю для 8Toxa8, что файл в кодировке юникод (UTF-16 LE/1200) с BOM »
Ага. И я забыл сразу отметить особенность: с инверсным порядком байт.
Iska, UTF-8 без BOM с одной только латиницей называется ANSI ;-)
Busla, там не только латиница, там же французский, немецкий, испанский с кучей диакретических знаков ;).
Iska, а, да: открыл - увидел.
разработчики - странные ребята
Busla, угу. Даже петицию на добавление русской локализации пилили, но, видимо, увы. И тот факт, что в наше время локализаторам приходится прибегать к подобным извращениям из-за непродуманности реализации, действительно говорит о многом.
Вроде все понятно буду разбираться. Единственное не понял что значит доморощенная перекодировка?
что значит доморощенная перекодировка? »
То, то она не соответствует ни одному стандарту.
буду разбираться »
Ну и я не только для демонстрации привёл скриншоты. Если хотите делать свои тексты — то из этой пары видно, что нашей букве У (подставлена внизу) соответствует исходный код dd (смотрим эту же позицию наверху), букве Л — код c5, букве И — код dc, и так далее.
Как я понял русские символы которых нету в стандартной латинице локализаторы заменили некоторые символы латиницы на русские символы. Значит они внедрили их в саму игру в таблицу ANSI. Это мне надо найти их и внедрить их уже в чистый клиент? На чистом клиенте при замене кодов символов отображаются стандартные символы латиницы.
Значит они внедрили их в саму игру в таблицу ANSI. »
Они использовали правленный шрифт.
Это мне надо найти их и внедрить их уже в чистый клиент? »
Навряд ли. Судя по тому, что я читал, этого недостаточно.
Есть русскоязычное сообщество. Там есть и патчи для русификации. Можете спросить там, как именно это было сделано.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.