Автор Тема: 1251 to HEX  (Прочитано 65161 раз)

Оффлайн Solenij

  • Модератор
  • Старожил
  • *****
  • Сообщений: 487
    • http://unpacking.narod.ru
1251 to HEX
« : 16 Августа 2009, 02:45:14 »
1251 to HEX v1.6



Делал программу для себя, немного усложнил и теперь выкладываю для всех (может кому-нибудь и пригодится).
Суть программы очень проста - в текстовом поле пишите текст на русском языке, а в остальных полях он кодируется в соответствующую кодировку и отображается в HEX-кодах нужной вам кодировки. Это очень удобно при русификации программ, у которых например инфтерфейс вне ресурсов программы выполнен в кодировке UTF-8 и прочих.
Если неправильно в HEX'е использовать кодировку символов, то в итоге на интерфейсе программы будут отображаться кракозябли и псевдосимволы.
Программа поддерживает 11 кодировок, которые могут встретиться в процессе русификации ПО.

СКАЧАТЬ
Зеркало
« Последнее редактирование: 03 Апреля 2012, 17:33:30 от Solenij »
Уважайте труд других людей - они будут уважать Ваш!!!

Оффлайн ZeroChaos

  • Root Admin
  • Ветеран
  • *****
  • Сообщений: 1376
  • The Dragon Reborn
    • zerolab.net
1251 to HEX
« Ответ #1 : 16 Августа 2009, 10:13:20 »
Solenij, молодец!  Очень полезная утилита для всего сообщества локализаторов.  
Зазеркалил 1251 to HEX v1.6: http://msilab.net/files/utilities/1251_to_HEX_v1.6.rar
« Последнее редактирование: 11 Июня 2012, 13:22:38 от ZeroChaos »
The Wheel of Time turns, and Ages come and pass, leaving memories that become legend. Legend fades to myth, and even myth is long forgotten when the Age that gave it birth comes again... There are neither beginnings nor endings to the turning of the Wheel of Time. But it was a beginning. R. Jordan

Оффлайн NedMaker

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1130
  • The Vigilant Observer
    • nrgizer.msilab.net
1251 to HEX
« Ответ #2 : 16 Августа 2009, 10:23:23 »
Solenij,  
Предлагаю добавить еще Кириллицу (DOS). Однажды мне встретилась эта кодировка при переводе.

Оффлайн Solenij

  • Модератор
  • Старожил
  • *****
  • Сообщений: 487
    • http://unpacking.narod.ru
1251 to HEX
« Ответ #3 : 16 Августа 2009, 19:08:20 »
Цитата: NedMaker
Solenij,  
Предлагаю добавить еще Кириллицу (DOS). Однажды мне встретилась эта кодировка при переводе.
О, точно, спасибо за подсказку. Сегодня добавлю. Если кто-нибудь знает еще кодировки, которые используются в программах просьба написать название этой кодировки, либо название программы, где она используется.
ZeroChaos, благодарю за зеркало.

1251 to HEX v1.2
Версия 1.2:
- добавлены кодировки CP866 (MS DOS-кириллица новая) и CP855 (MS DOS-кириллица старая);
- оптимизированы кодировки Windows-1251, UTF-7 и UTF-8.
Ссылка в шапке.
P.S. NedMaker'у, спасибо за подсказку по поводу MS DOS
« Последнее редактирование: 16 Августа 2009, 13:39:24 от Solenij »
Уважайте труд других людей - они будут уважать Ваш!!!

Оффлайн Kirill Borisenko

  • Постоялец
  • ***
  • Сообщений: 177
    • http://
1251 to HEX
« Ответ #4 : 17 Августа 2009, 15:43:08 »
Solenij,     - очень - очень полезная вещь - уже пометил, как "настольный" инструмент.
« Последнее редактирование: 17 Августа 2009, 15:45:10 от Kirill Borisenko »

Оффлайн Solenij

  • Модератор
  • Старожил
  • *****
  • Сообщений: 487
    • http://unpacking.narod.ru
1251 to HEX
« Ответ #5 : 17 Августа 2009, 19:49:01 »
Всем спасибо.  
Доделал финальную версию со всеми кодировками, которые вспомнил и нашел в сети. Вроде бы больше нет кодировок, которые поддерживают кириллицу, хотя всё может быть (кодировка "Неизвестная кодировка" тому пример).
1251 to HEX v1.3:
- добавлено 8 различных кодировок, которые поддерживают кириллицу;
- добавлена новая функция - "Исправить кодировку в реестре XP" - исправляет текущую кодовую страницу в реестре Windows NT, 2k и XP на кирилицу 1251 - тоже самое что:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage]
"1252"="c_1251.nls"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes]
"Arial,0"="Arial,204"
"Comic Sans MS,0"="Comic Sans MS,204"
"Courier,0"="Courier New,204"
"Microsoft Sans Serif,0"="Microsoft Sans Serif,204"
"Tahoma,0"="Tahoma,204"
"Times New Roman,0"="Times New Roman,204"
"Verdana,0"="Verdana,204"
- оптимизирована кодировка Unicode;
- исправлены мелкие ошибки.

ССЫЛКА В ШАПКЕ

Теперь как появится время буду делать анализатор кодировок для 1251 to HEX, а может и не буду...  
« Последнее редактирование: 17 Августа 2009, 19:50:03 от Solenij »
Уважайте труд других людей - они будут уважать Ваш!!!

Оффлайн NedMaker

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1130
  • The Vigilant Observer
    • nrgizer.msilab.net
1251 to HEX
« Ответ #6 : 17 Августа 2009, 22:10:01 »
Solenij
Цитировать
исправляет текущую кодовую страницу в реестре Windows NT, 2k и XP на кирилицу 1251
Скорее не исправляет а калечит   лучше назвать Подмена кодировки, и было бы неплохо сделать кнопку с обратным действием, это и будет Исправить.

P.S. Я очень щепетильно отношусь к этой подмене, специфика работы не позволяет ей пользоваться. Бывает приходится работать с иностранными текстами, и там пропадают символы со всякими черточками точечками и т.д. Поэтому коробит что многие русификаторщики (или русификаторы)  вместо того чтобы подправить шрифт в переводимой программе, предлагают внести изменение кодировки в системе, как будто кроме русского других языков не существует.
« Последнее редактирование: 17 Августа 2009, 22:11:00 от NedMaker »

Оффлайн Solenij

  • Модератор
  • Старожил
  • *****
  • Сообщений: 487
    • http://unpacking.narod.ru
1251 to HEX
« Ответ #7 : 18 Августа 2009, 01:46:03 »
Цитата: NedMaker
Solenij

Скорее не исправляет а калечит   лучше назвать Подмена кодировки, и было бы неплохо сделать кнопку с обратным действием, это и будет Исправить.

P.S. Я очень щепетильно отношусь к этой подмене, специфика работы не позволяет ей пользоваться. Бывает приходится работать с иностранными текстами, и там пропадают символы со всякими черточками точечками и т.д. Поэтому коробит что многие русификаторщики (или русификаторы)  вместо того чтобы подправить шрифт в переводимой программе, предлагают внести изменение кодировки в системе, как будто кроме русского других языков не существует.
Очень хорошая идея, иногда бывает надобность в этом. Кто мне может подсказать какие ключи реестра были стандартными, а то не хочется систему переустанавливать только из-за того, чтобы посмотреть?!
Может есть еще какие-нибудь предложения по программе? Буду только рад.
Уважайте труд других людей - они будут уважать Ваш!!!

Оффлайн NedMaker

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1130
  • The Vigilant Observer
    • nrgizer.msilab.net
1251 to HEX
« Ответ #8 : 18 Августа 2009, 10:44:45 »
Solenij
Цитировать
Кто мне может подсказать какие ключи реестра были стандартными
Вот стандартные значения, я их не правлю
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage]
"1250"="c_1250.nls"
"1251"="c_1251.nls"
"1252"="c_1252.nls"
"1253"="c_1253.nls"
"1254"="c_1254.nls"
"1255"="c_1255.nls"
"1256"="c_1256.nls"
"1257"="c_1257.nls"
"1258"="c_1258.nls"
"1361"="c_1361.nls"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes]
"Arial CE,238"="Arial,238"
"Arial CYR,204"="Arial,204"
"Arial Greek,161"="Arial,161"
"Arial TUR,162"="Arial,162"
"Courier New CE,238"="Courier New,238"
"Courier New CYR,204"="Courier New,204"
"Courier New Greek,161"="Courier New,161"
"Courier New TUR,162"="Courier New,162"
"Helv"="MS Sans Serif"
"Helvetica"="Arial"
"MS Shell Dlg 2"="Tahoma"
"Times"="Times New Roman"
"Times New Roman CE,238"="Times New Roman,238"
"Times New Roman CYR,204"="Times New Roman,204"
"Times New Roman Greek,161"="Times New Roman,161"
"Times New Roman TUR,162"="Times New Roman,162"
"Tms Rmn"="MS Serif"
"Arial Baltic,186"="Arial,186"
"Courier New Baltic,186"="Courier New,186"
"Times New Roman Baltic,186"="Times New Roman,186"
"System,0"="System,204"
"Fixedsys,0"="Fixedsys,204"
"Small Fonts,0"="Small Fonts,204"
"MS Serif,0"="MS Serif,204"
"MS Sans Serif,0"="MS Sans Serif,204"
"Courier,0"="Courier New,204"
"Arial Cyr,0"="Arial,204"
"Courier New Cyr,0"="Courier New,204"
"Times New Roman Cyr,0"="Times New Roman,204"
"Helv,0"="MS Sans Serif,204"
"Tms Rmn,0"="MS Serif,204"
"MS Shell Dlg"="Microsoft Sans Serif"

Оффлайн Kirill Borisenko

  • Постоялец
  • ***
  • Сообщений: 177
    • http://
1251 to HEX
« Ответ #9 : 18 Августа 2009, 13:39:24 »
Solenij, есть предложение - добавить к программе вывод полной наглядной таблицы (выбранной) кодировки символов в отдельном окне, с возможностью вывода страницы на печать.

Было бы очень удобно.

Оффлайн Solenij

  • Модератор
  • Старожил
  • *****
  • Сообщений: 487
    • http://unpacking.narod.ru
1251 to HEX
« Ответ #10 : 18 Августа 2009, 16:13:06 »
NedMaker, спасибо. Немного попозже сделаю функцию возврата кодовой страницы.
Kirill Borisenko, не пнимаю зачем это нужно. По моему удобнее в программе набрать нужный знак или вообще целую статью и получишь уже готовый к вставке в HEX код. Или я чего-то не понял?
Уважайте труд других людей - они будут уважать Ваш!!!

Оффлайн Kirill Borisenko

  • Постоялец
  • ***
  • Сообщений: 177
    • http://
1251 to HEX
« Ответ #11 : 18 Августа 2009, 18:19:52 »
Цитата: Solenij
NedMaker, спасибо. Немного попозже сделаю функцию возврата кодовой страницы.
Kirill Borisenko, не пнимаю зачем это нужно. <...> Или я чего-то не понял?

Это, чтобы можно было на досуге посидеть с бумажкой и изучить кодировку. Или я не прав?

Да, собственно, с вопросом определения кодировки:

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

-Запустить последовательно все приложения, и посмотреть, какая кодировка отображается верно.

-Вопрос в том, как автоматизировать процесс сравнения фразы, выводимой на экран..

Оффлайн Solenij

  • Модератор
  • Старожил
  • *****
  • Сообщений: 487
    • http://unpacking.narod.ru
1251 to HEX
« Ответ #12 : 18 Августа 2009, 18:32:03 »
Я сейчас как раз над этим и думаю (читаешь мои мысли).   Я планирую этот механизм вставить в анализатор, о котором я писал ранее. Но пока не знаю, как это воплотить в жизнь, так как помимо навыков программирования надо хорошо знать PE-формат. Буду думать, может кого-нибудь из опытных людей подключу к проекту.
Уважайте труд других людей - они будут уважать Ваш!!!

Оффлайн lityaidewaype

  • Новичок
  • *
  • Сообщений: 1
1251 to HEX
« Ответ #13 : 27 Августа 2009, 03:51:24 »
> are you aware of any Hex Editors that allow you
> to display in character encodings other than ANSI?

None. The one I used before BC I think even predated common Unicode, and I found very little choice.

BTW, the reason I wanted alternative encoding today is for debugging encodings   When you do add this, I hope the Unicode display will make very clear which 1/2/3 bytes a character maps to.

Оффлайн Solenij

  • Модератор
  • Старожил
  • *****
  • Сообщений: 487
    • http://unpacking.narod.ru
1251 to HEX
« Ответ #14 : 31 Августа 2009, 18:38:48 »
Цитата: lityaidewaype
> are you aware of any Hex Editors that allow you
> to display in character encodings other than ANSI?

None. The one I used before BC I think even predated common Unicode, and I found very little choice.

BTW, the reason I wanted alternative encoding today is for debugging encodings   When you do add this, I hope the Unicode display will make very clear which 1/2/3 bytes a character maps to.
To be honest, I knew little of what you wrote. This program is designed only for Russian-speaking population and can only work with Cyrillic. Not Cyrillic encodings will not be supported.

Новая версия программы - 1251 to HEX v1.4
- исправлена ошибка с отображением форм в программе;
- функция "Исправить кодировку в реестре XP" переименована в "Подмена кодовой страницы XP" и вынесена в отдельную подпрограмму с добавлением функции "Восстановить кодовую страницу".

Ссылка в шапке
Уважайте труд других людей - они будут уважать Ваш!!!