MSI Lab - Форум по русификации

Программы для локализации => Вспомогательные программы => Тема начата: Solenij от 16 Августа 2009, 02:45:14

Название: 1251 to HEX
Отправлено: Solenij от 16 Августа 2009, 02:45:14
1251 to HEX v1.6

(http://solenij.narod.ru/images/1251.png)

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

СКАЧАТЬ (http://solenij.narod.ru/1251/1251_to_HEX_v1.6.rar)
Зеркало (http://www.box.com/s/2c20453f77cc17b8cdbf)
Название: 1251 to HEX
Отправлено: ZeroChaos от 16 Августа 2009, 10:13:20
Solenij, молодец!  Очень полезная утилита для всего сообщества локализаторов.  
Зазеркалил 1251 to HEX v1.6: http://msilab.net/files/utilities/1251_to_HEX_v1.6.rar (http://msilab.net/files/utilities/1251_to_HEX_v1.6.rar)
Название: 1251 to HEX
Отправлено: NedMaker от 16 Августа 2009, 10:23:23
Solenij,  
Предлагаю добавить еще Кириллицу (DOS). Однажды мне встретилась эта кодировка при переводе.
Название: 1251 to HEX
Отправлено: Solenij от 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
Название: 1251 to HEX
Отправлено: Kirill Borisenko от 17 Августа 2009, 15:43:08
Solenij,     - очень - очень полезная вещь - уже пометил, как "настольный" инструмент.
Название: 1251 to HEX
Отправлено: Solenij от 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, а может и не буду...  
Название: 1251 to HEX
Отправлено: NedMaker от 17 Августа 2009, 22:10:01
Solenij
Цитировать
исправляет текущую кодовую страницу в реестре Windows NT, 2k и XP на кирилицу 1251
Скорее не исправляет а калечит   лучше назвать Подмена кодировки, и было бы неплохо сделать кнопку с обратным действием, это и будет Исправить.

P.S. Я очень щепетильно отношусь к этой подмене, специфика работы не позволяет ей пользоваться. Бывает приходится работать с иностранными текстами, и там пропадают символы со всякими черточками точечками и т.д. Поэтому коробит что многие русификаторщики (или русификаторы)  вместо того чтобы подправить шрифт в переводимой программе, предлагают внести изменение кодировки в системе, как будто кроме русского других языков не существует.
Название: 1251 to HEX
Отправлено: Solenij от 18 Августа 2009, 01:46:03
Цитата: NedMaker
Solenij

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

P.S. Я очень щепетильно отношусь к этой подмене, специфика работы не позволяет ей пользоваться. Бывает приходится работать с иностранными текстами, и там пропадают символы со всякими черточками точечками и т.д. Поэтому коробит что многие русификаторщики (или русификаторы)  вместо того чтобы подправить шрифт в переводимой программе, предлагают внести изменение кодировки в системе, как будто кроме русского других языков не существует.
Очень хорошая идея, иногда бывает надобность в этом. Кто мне может подсказать какие ключи реестра были стандартными, а то не хочется систему переустанавливать только из-за того, чтобы посмотреть?!
Может есть еще какие-нибудь предложения по программе? Буду только рад.
Название: 1251 to HEX
Отправлено: NedMaker от 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"
Название: 1251 to HEX
Отправлено: Kirill Borisenko от 18 Августа 2009, 13:39:24
Solenij, есть предложение - добавить к программе вывод полной наглядной таблицы (выбранной) кодировки символов в отдельном окне, с возможностью вывода страницы на печать.

Было бы очень удобно.
Название: 1251 to HEX
Отправлено: Solenij от 18 Августа 2009, 16:13:06
NedMaker, спасибо. Немного попозже сделаю функцию возврата кодовой страницы.
Kirill Borisenko, не пнимаю зачем это нужно. По моему удобнее в программе набрать нужный знак или вообще целую статью и получишь уже готовый к вставке в HEX код. Или я чего-то не понял?
Название: 1251 to HEX
Отправлено: Kirill Borisenko от 18 Августа 2009, 18:19:52
Цитата: Solenij
NedMaker, спасибо. Немного попозже сделаю функцию возврата кодовой страницы.
Kirill Borisenko, не пнимаю зачем это нужно. <...> Или я чего-то не понял?

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

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

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

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

-Вопрос в том, как автоматизировать процесс сравнения фразы, выводимой на экран..
Название: 1251 to HEX
Отправлено: Solenij от 18 Августа 2009, 18:32:03
Я сейчас как раз над этим и думаю (читаешь мои мысли).   Я планирую этот механизм вставить в анализатор, о котором я писал ранее. Но пока не знаю, как это воплотить в жизнь, так как помимо навыков программирования надо хорошо знать PE-формат. Буду думать, может кого-нибудь из опытных людей подключу к проекту.
Название: 1251 to HEX
Отправлено: lityaidewaype от 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.
Название: 1251 to HEX
Отправлено: Solenij от 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" и вынесена в отдельную подпрограмму с добавлением функции "Восстановить кодовую страницу".

Ссылка в шапке
Название: 1251 to HEX
Отправлено: Kirill Borisenko от 06 Сентября 2009, 12:22:10
Solenij, очень бы пригодилась кодировка, использующаяся в языке TML - была бы вообще фантастика.
А то многие скриптовые программы (такие, как эти (http://kanst.mediatory.ru/index.files/dvdrem/ifo.htm)) переводить - сущая морока.
Название: 1251 to HEX
Отправлено: VIPer от 06 Сентября 2009, 15:01:46
Я считаю, что и "Подмена кодовой страницы XP" является некорректным названием. Есть уже и Vista и 7, поэтому лучше напиши "Подмена кодовой страницы Windows".
Название: 1251 to HEX
Отправлено: Solenij от 01 Октября 2009, 17:52:23
Цитата: Kirill Borisenko
Solenij, очень бы пригодилась кодировка, использующаяся в языке TML - была бы вообще фантастика.
А то многие скриптовые программы (такие, как эти (http://kanst.mediatory.ru/index.files/dvdrem/ifo.htm)) переводить - сущая морока.
Ok. Сделаю, но позже, думаю многим пригодится.
Цитата: VIPer
Я считаю, что и "Подмена кодовой страницы XP" является некорректным названием. Есть уже и Vista и 7, поэтому лучше напиши "Подмена кодовой страницы Windows".
Хотел так написать, но не знаю, как эта фишка работает на других осях. Протестирую в недалеком будущем на разных осях и тогда поменяю, если всё нормально будет.

1251 to HEX v1.5 Final
- добавлено 2 кодировки;
- оптимизированна работа программы;
- убраны лишние функции.

Ссылка в шапке.

Пока это наверное последняя версия программы. Надеюсь, что скоро все мои проблемы утрясутся и я снова вернусь к вам. Тогда сделаю уже и скриптовые языки и самое главное для чего я это всё делал - анализатор кодировок.
Название: 1251 to HEX
Отправлено: VIPer от 01 Октября 2009, 19:51:34
Solenij, с нетерпением ожидаем твоего возвращения!
Название: 1251 to HEX
Отправлено: Solenij от 30 Октября 2009, 17:10:11
Цитата: VIPer
Solenij, с нетерпением ожидаем твоего возвращения!
Спасибо, парни.  

Немного подправил программку, в связи с исправлением некоторых ошибок в функции "Подмена кодовой страницы". Ссылка в шапке.
Цитата: VIPer
Я считаю, что и "Подмена кодовой страницы XP" является некорректным названием. Есть уже и Vista и 7, поэтому лучше напиши "Подмена кодовой страницы Windows".
Поставил себе Windows 7 теперь знаю, что кодовая страница во всех версиях NT одинакова - кнопку исправил.
Название: 1251 to HEX
Отправлено: Solenij от 17 Декабря 2009, 20:52:08
Версия 1.5b
Шапка обновлена
Изменения:
- повторное исправление некоторых ошибок в функции "Подмена кодовой страницы";
- добавлена функция перезагрузки компьютера после использования кнопки "Подмена кодовой страницы".

Надеюсь это последняя версия.  
Название: 1251 to HEX
Отправлено: Solenij от 03 Апреля 2012, 17:35:23
Давно собирался это сделать и оно свершилось - последняя обнова для этого проекта.

1251 to HEX v1.6
- программа переделана с нуля. Если раньше многие кодировки работали за счет строковых массивов содержащихся в программе, то теперь все кодировки работают за счет установленных кодировок Windows. В данной версии все поля корректно работают без дополнительно установленных кодировок в системе - проверено на чистой Windows XP SP3 Professional Rus;
- из проекта убраны 5 кодировок (Johab, CNS, IBM880, X-CP20001 и Неизвестная кодировка). Данные кодировки не встречаются при локализации софта, а кодировка "Неизвестная кодировка" больше неактуальна, так как программа с такой кодировкой только одна и она уже русифицированна;
- функция "Подмена кодовой страницы" также полностью переделана и в основном оптимизированна для работы с Windows XP;
- слегка изменен интерфейс.

Ссылки в шапке
Название: 1251 to HEX
Отправлено: therest от 26 Июля 2012, 12:08:37
Прога неправильно отработала с корейским иероглифом 인  код C778 прога говорит что его код 3F00

(http://i40.fastpic.ru/big/2012/0726/87/0b0aca77bd3ad2c3acb5e6346424fb87.jpg)
Название: 1251 to HEX
Отправлено: Solenij от 29 Июля 2012, 18:31:03
therest, программа и не должна обрабатывать какие-либо иероглифы, она не для этого сделана.
Название: 1251 to HEX
Отправлено: Kazooki от 30 Ноября 2015, 22:50:08
Solenij
привет!
Хотелось бы добавить обратное конвертирование, т.е в поля вводим HEX и видим соответствующий текст    
Спасибо за софтину)
Название: 1251 to HEX
Отправлено: Isaev от 25 Сентября 2016, 00:34:57
Добавьте возможность обратной трансляции
Чтобы из hex-редактора скопировал строку и посмотрел её на русском