Войти

Показать полную графическую версию : Кодировка текста


Страниц : [1] 2

8Toxa8
03-08-2017, 21:02
Не могу понять в какой кодировке текст. Все декодере перерыл так и не понял. Текст выглядит во так: CØEÅATÓ B ÚÝCT¾HH¾X PEÕÜOHAX Ü ÁEÒ ÜCÚOÅÓÒOBAHÜ¥ CÚEÇÜAÅÓH¾X
Это русский текст в текстовом файле локализации игры, но в самой игре он отображается русским шрифтом.

Busla
03-08-2017, 21:27
такие вещи надо в бинарном виде выклыдывать

зачастую, локализаторам не получается использовать стандартные кодировки, т.к. часть необходимых кодов символов уже занята какими-либо спецсимволами

mwz
03-08-2017, 21:40
8Toxa8, очень похоже на не-юникодовый шрифт, символы которого, лежащие в верхней половине кодовой таблицы, в игре интерпретируются как кириллические (так, как это делалось в Win-3.1 и Win95/98).

Но точнее можно было бы сказать если бы вы последовали рекомендации Busla, выложив этот текст в виде тех кодов, которыми он представлен в файле..

Iska
03-08-2017, 22:42
такие вещи надо в бинарном виде выклыдывать »
выложив этот текст в виде тех кодов, которыми он представлен в файле.. »
8Toxa8, перевожу на русский ;): упакуйте файл:
в текстовом файле локализации »
в архив и приложите к сообщению, либо выложите на RGhost или Яндекс.Диск.

gannet
04-08-2017, 06:09
Могли просто при записи текста на бит сдвинуть или прибавить\вычесть (символы - они тоже числа) - для защиты

8Toxa8
04-08-2017, 18:38
Вот сам файл:

mwz
04-08-2017, 22:01
8Toxa8, примерно что я предполагал — но веселее: не однобайтная, как я думал, а
— двухбайтная кодировка с использованием 00 вместо 04 для русского (т.е. вроде как чистая латиница),
— для представления русских букв, имеющих аналоги по начертанию в латинице, использована латиница,
— для остальных использована доморощенная перекодировка (видимо чтобы не перехлестнуться с символами, используемыми в других местах — как и предположил Busla).

Исходник и результат на скриншоте.

Сдуру сквозную замену проводил в шестнадцатеричном режиме, шестнадцатеричных кодов на ANSI-коды заглавных русских букв: в HEX-редакторе проще было сквозной заменой символа на символ; при замене был невнимателен и вместо З получил Ц (при том, что истинную Ц подставил правильно), а вместо У — мягкий знак (Ь) при том, что сам мягкий знак сделал правильно. Исправлять не стал: идея и так ясна.

http://mwz-ru.homeserver.com/tests/recode1.gif

PS
Не примазываюсь к чужой славе: использован метод Ш.Холмса из рассказа А.Конан-Дойла "Пляшущие человечки" — при том, что исходной полезной информации здесь было, мягко говоря, гораздо больше, чем в первоисточнике.

Iska
05-08-2017, 05:14
не однобайтная, как я думал, а
— двухбайтная кодировка »
Добавлю для 8Toxa8, что файл в кодировке юникод (UTF-16 LE/1200) с BOM. Хотя меня и терзают сомнения, что это сам коллега 8Toxa8 сделал его таким, а оригинальный файл не юникод.

— для представления русских букв, имеющих аналоги по начертанию в латинице, использована латиница,
— для остальных использована доморощенная перекодировка (видимо чтобы не перехлестнуться с символами, используемыми в других местах — как и предположил Busla). »
Вот давно такого не видел, со времён DOS. Словно окунулся в старые славные времена :).

8Toxa8, а что за игра?

8Toxa8
05-08-2017, 08:09
Да действительно я удалил лишнее в файле чтобы по меньше весил, видимо нарушил кодировку, изначально он был ANSI. Оригинал во вложении.
Игра 7 Days to Die. Не ожидал что все окажется на столько сложно.

Iska
05-08-2017, 09:47
8Toxa8, вот почему я всегда и настаиваю именно на оригинальном файле и в архиве — дабы сохранить в неприкосновенности оригинальный формат, в том числе кодировку, BOM и концы строк.

Да, там оригинально. Файл в кодировке UTF-8 без BOM. На место английского засунут перевод на русский в волапюке из-за того, что оригинальный шрифт не содержит кириллицы, а другие игра не кушает. Посему используют такой подход и перерисованный шрифт.

mwz
05-08-2017, 09:52
Добавлю для 8Toxa8, что файл в кодировке юникод (UTF-16 LE/1200) с BOM »

Ага. И я забыл сразу отметить особенность: с инверсным порядком байт.

Busla
05-08-2017, 10:09
Iska, UTF-8 без BOM с одной только латиницей называется ANSI ;-)

Iska
05-08-2017, 11:00
Busla, там не только латиница, там же французский, немецкий, испанский с кучей диакретических знаков ;).

Busla
05-08-2017, 11:31
Iska, а, да: открыл - увидел.
разработчики - странные ребята

Iska
05-08-2017, 11:46
Busla, угу. Даже петицию на добавление русской локализации пилили, но, видимо, увы. И тот факт, что в наше время локализаторам приходится прибегать к подобным извращениям из-за непродуманности реализации, действительно говорит о многом.

8Toxa8
05-08-2017, 20:27
Вроде все понятно буду разбираться. Единственное не понял что значит доморощенная перекодировка?

Iska
05-08-2017, 20:52
что значит доморощенная перекодировка? »
То, то она не соответствует ни одному стандарту.

mwz
05-08-2017, 21:11
буду разбираться »

Ну и я не только для демонстрации привёл скриншоты. Если хотите делать свои тексты — то из этой пары видно, что нашей букве У (подставлена внизу) соответствует исходный код dd (смотрим эту же позицию наверху), букве Л — код c5, букве И — код dc, и так далее.

8Toxa8
06-08-2017, 19:45
Как я понял русские символы которых нету в стандартной латинице локализаторы заменили некоторые символы латиницы на русские символы. Значит они внедрили их в саму игру в таблицу ANSI. Это мне надо найти их и внедрить их уже в чистый клиент? На чистом клиенте при замене кодов символов отображаются стандартные символы латиницы.

Iska
06-08-2017, 20:48
Значит они внедрили их в саму игру в таблицу ANSI. »
Они использовали правленный шрифт.

Это мне надо найти их и внедрить их уже в чистый клиент? »
Навряд ли. Судя по тому, что я читал, этого недостаточно.

Есть русскоязычное сообщество. Там есть и патчи для русификации. Можете спросить там, как именно это было сделано.




© OSzone.net 2001-2012