Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.07.2013, 11:25   #1
2Life6
Новичок
Джуниор
 
Регистрация: 13.07.2013
Сообщений: 5
Печаль Программа не читает русский язык.

Ребят помогите, исходников программы нет.

Когда открываю программу, жму open открываю файл и получается так, что всё знаками вопроса.

Когда открываю английский файл всё отлично отображается английскими буквами.

Можно как то с помощью Hex Editor или как то ещё сделать поддержку русского языка?

Знаю паренька, я ему давал он мне делал раньше , что всё читалось.

Но щас он пропал куда-то.
2Life6 вне форума Ответить с цитированием
Старый 13.07.2013, 11:36   #2
2Life6
Новичок
Джуниор
 
Регистрация: 13.07.2013
Сообщений: 5
По умолчанию

Поможет кто?)
2Life6 вне форума Ответить с цитированием
Старый 13.07.2013, 11:53   #3
scalpel
Форумчанин
 
Аватар для scalpel
 
Регистрация: 01.02.2010
Сообщений: 118
По умолчанию

Проверяй кодировку с системе, что-бы было с поддержкой кириллиц.
scalpel вне форума Ответить с цитированием
Старый 13.07.2013, 12:03   #4
2Life6
Новичок
Джуниор
 
Регистрация: 13.07.2013
Сообщений: 5
По умолчанию

Система читает всё, другие программы всё отлично, просто программа написано английскими людьми, и не читает русский язык, там вообще про кирилицу нет ни словечка.. Надо в программе сделать это, я же говорю пареньку так давал он делал, скидывал мне и всё читалось отлично.
2Life6 вне форума Ответить с цитированием
Старый 13.07.2013, 12:26   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Надо в программе сделать это
Ну и на чем же она написана? Билдер? Делфи?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.07.2013, 12:32   #6
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Ну а может Вы программку сюда зальете? Или продолжим соревнование телепатов?
Poma][a вне форума Ответить с цитированием
Старый 13.07.2013, 13:31   #7
2Life6
Новичок
Джуниор
 
Регистрация: 13.07.2013
Сообщений: 5
По умолчанию

http://rghost.ru/47391494 программа.

Пытаюсь менять System.Text.ASCIIEncoding.Encoding через Hex Editor , но не могу на UTF8 т.к нельзя менять размер файла иначе вылетает win32 ошибка.
2Life6 вне форума Ответить с цитированием
Старый 13.07.2013, 13:45   #8
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию

А если дописать в конец, найти место, где содержится адрес кодировки и поменять на адрес последних 4х байт?

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог
_PROGRAMM_ вне форума Ответить с цитированием
Старый 13.07.2013, 14:03   #9
2Life6
Новичок
Джуниор
 
Регистрация: 13.07.2013
Сообщений: 5
По умолчанию

Можете наглядный пример написать?
2Life6 вне форума Ответить с цитированием
Старый 13.07.2013, 15:21   #10
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию

System.Text.ASCIIEncoding.Encoding - это, как я понял, переменная. Вы находите ее в Hex редакторе и хотите поменять значение, так? Но там находится другая строка, которая по размерам больше или меньше 4х символов(UTF8). По теории Вы ее изменить не можете т.к. сокращение программы на 1 байт приведет к ее краху из-за нарушения адресации. Но Вы знаете адрес этой строки(адрес первого байта) назовем его для удобства offsetStr. В конец файла дописываем строку "UTF8" увеличив этим размер файла на 4 байта. От этого ничего не должно произойти т.к. завершение программы происходит не из-за завершения файла, а из-за вызова в вашем случае функции WinAPI(В DOS и в Linux за это отвечает прерывание). Нам нужно запомнить адрес символа "U", назовем offsetU и заменить все встречающиеся в программе адреса offsetStr на offsetU. После этого программа должна работать с другой кодировкой.
---
P.S. Открыл файл и понял, что вы хотели изменить строку, но по вышеизложенному алгоритму это не получится! Такое, конечно, сделать будет тяжеловато. Особенно мне, т.к. у меня нет дебагера для Windows приложений. Поэтому могу только наумничать, сказав что и как делать. Видите на скриншоте правый столбец с ASCII символами? Так вот это скорее всего сгенерировано Visual Studio для библиотеки MFC или чего то в этом роде. Как ее изменить? В вашем случае ответить точно на вопрос я не смогу, т.к. не знаю устройство этой библиотеки и MSVS в целом и не могу отладить, а так же запустить из-за отсутствия ОС. Вам нужно узнать, как осуществляется обмен данными в этом адресном пространстве. На мой взгляд
Цитата:
System.Text.ASCIIEncoding.Encoding
Это 3 разных переменных(System.Text - одна). Hex редактор пишет точку, а если Вы ее подсветите курсором, то там на самом деле 0x00h(см скрин). Поэтому ориентируемся на ASCIIEncoding. Ее адрес - 0x913Ah. Если все сходится, то можно попробовать дальше действовать по моей схеме(которая серая). Дописать в конец(тут тоже важно знать как написать то ли UTF8, то ли UTF8Encoding)Эта строка получит адрес 0xEE00h. Дальше в дебагере нужно поменять все адреса с 0x913Ah на 0xEE00h. Замечу, что в дебагере адреса будут другие. Мой вариант не подойдет если 0 не используется как разделитель этой огромной строки и если программа действует по другой схеме.
Изображения
Тип файла: jpg Снимок экрана.jpg (118.4 Кб, 139 просмотров)
Тип файла: jpg Увеличенный снимок экрана.jpg (105.4 Кб, 129 просмотров)

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог

Последний раз редактировалось _PROGRAMM_; 13.07.2013 в 18:00.
_PROGRAMM_ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Русский язык Dima-War Общие вопросы C/C++ 12 06.11.2012 19:40
C++ на русский язык fkorto Общие вопросы C/C++ 6 29.04.2010 15:12
Русский язык Sanek_ntsk Общие вопросы C/C++ 9 06.03.2008 16:50
Русский язык [Smarik] Паскаль, Turbo Pascal, PascalABC.NET 7 01.02.2008 22:58
РУССКИЙ ЯЗЫК vicdon Паскаль, Turbo Pascal, PascalABC.NET 3 19.11.2007 14:34