eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 августа!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: LoxmatbIj (+2 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Вопросы новичков —› Крякозябры utf-8 > win-1251
Посл.ответ Сообщение

Ранг: -1.3 (нарушитель)
Статус: Участник

Создано: 22 июня 2013 13:14 New!
Цитата · Личное сообщение · #1

Здравствуйте уважаемые!
Есть некая програмка которую пытаюсь локализировать. Но в результате - некорректно отображает русскиие символы.
Причина известна - все label/text берутся из базы Sqlite которая существует только в юникоде, и переучить её нельзя.
Сама программа берёт данные из базы в UTF-8, а отображает в windows-1251, для английского языка проблем с отображением нету, а вот русский выводит крякозябрами.
Программа защищена химидой 2.Х что всё усложняет.
Помогите советом! заранее спасибо.

{ Атач доступен только для участников форума } - cptrash.JPG

Ранг: 23.1 (новичок)
Статус: Участник

Создано: 22 июня 2013 13:26 New!
Цитата · Личное сообщение · #2

А почему бы данные не отоброжать в utf-8?

Ранг: -1.3 (нарушитель)
Статус: Участник

Создано: 22 июня 2013 13:39 New!
Цитата · Личное сообщение · #3

ZX-CodeR пишет:
А почему бы данные не отоброжать в utf-8

я тоже за! только вот как, когда программа защищена? лезть в реестр?

Ранг: 23.1 (новичок)
Статус: Участник

Создано: 22 июня 2013 14:14 New!
Цитата · Личное сообщение · #4

Прогу можешь выложить ?

Ранг: -1.3 (нарушитель)
Статус: Участник

Создано: 22 июня 2013 14:51 New!
Цитата · Личное сообщение · #5

--> прога <--
а это база с русским текстом ,при загрузке выводится окно с текстом на русском - так быстрее проверять работоспособность --> база <--

Ранг: 440.8 (мудрец)
Статус: Участник

Создано: 22 июня 2013 15:41 New!
Цитата · Личное сообщение · #6

Да-да, самое главное в чип-тюнинге - это перевод программы на русский язык

| Сообщение посчитали полезным: SReg, nick8606, Diego4tm, sooqa


Ранг: 16.9 (новичок)
Статус: Участник

Создано: 25 июня 2013 19:15 New!
Цитата · Личное сообщение · #7

в sqllite UTF-8, UTF-16 или UTF-32 хранится все?
если второе или третье то надо в бд писать заранее сконвертированный в UTF-8 бинарный код руских тектов. потому как скорее всего прога тупа берет все тексты как ASCII и не заморачивается конвертом.

поэтому надо предоставить текст так в UTF-8 и положить его в бд чтобы при чтении как ASCI тоесть без какой либо конвертации прогой он выводился на экран по корану.

тут WideCharToMultiByte/MultiByteToWideChar вам в помощь

минус в том что в бд будет нечитаемое гавно. зато в проге будет все типтоп.

Ранг: 11.8 (новичок)
Статус: Участник

Создано: 25 июня 2013 20:37 New!
Цитата · Личное сообщение · #8

Diego4tm Если будете заносить в базу в кодировке 1251 то русские будут нормально отображаться.

Ранг: -1.3 (нарушитель)
Статус: Участник

Создано: 26 июня 2013 14:40 · Поправил: Модератор New!
Цитата · Личное сообщение · #9

progman пишет:
WideCharToMultiByte/MultiByteToWideChar вам в помощь
минус в том что в бд будет нечитаемое гавно

на то как будет храниться абсолютно .. неважно , главное вывод , буду пробывать =)

progman пишет:
надо предоставить текст так в UTF-8 и положить его в бд чтобы при чтении как ASCI тоесть без какой либо конвертации прогой он выводился на экран по корану

именно ради этого я и прошу помощи.

есть инструменты - дабы крякозябры в бд ютф-8 выводились в ASCII читабельно?

AliS S0fT пишет:
заносить в базу в кодировке 1251 то русские будут нормально отображаться

заносить в 1251 а при сохранении бд всеравно получится UTF-8. Кодировку базы изменить нельзя.
Кодировка SQlite создается при создании БД , да и выбор невелик : UTF-8,UTF-16,UTF-16le,UTF-16be

aplogger по первому запросу к базе:
Code:
  1. 0059EB8C 06E8 WideCharToMultiByte(000004E3, 00000000, 0958805C: "E:\ECM Titanium\TitaniumSystem.s3d", 00000034, 00000000, 00000000, 00000000, 00000000) ret: 00000034 [7] [26]
помогите=)) как конвертировать русский текст для записи в базу??

От модератора: Пользуйся кнопкой "Правка", не создавай сообщения подряд.


Ранг: 296.9 (наставник)
Статус: Участник

Создано: 3 июля 2013 16:51 · Поправил: DenCoder New!
Цитата · Личное сообщение · #10

Не пойму, чего париться, на msdn есть пара примеров. Ниже мой код

Из UTF-8 в Unicode
Code:
  1. int wlen = MultiByteToWideChar(CP_UTF8, 0, sUtf8, -1, NULL, 0);
  2. wchar_t* wtmp = new wchar_t[wlen];
  3. MultiByteToWideChar(CP_UTF8, 0, sUtf8, -1, wtmp, wlen);


Из Unicode в ASCII
Code:
  1. int AsciiLen = WideCharToMultiByte(CP_ACP, 0, wtmp, -1, NULL, 0, NULL, NULL);
  2. Text = new char[AsciiLen];
  3. WideCharToMultiByte(CP_ACP, 0, wtmp, -1, Text, AsciiLen, NULL, NULL);


Пробовал и сразу из UTF-8 в ASCII, но чё-то глючило, а времени много не было


Ранг: 755.0 (! !)
Статус: Участник
Student

Создано: 4 июля 2013 12:09 New!
Цитата · Личное сообщение · #11

Diego4tm пишет:
только вот как, когда программа защищена?

снять защиту для начала...
 eXeL@B —› Вопросы новичков —› Крякозябры utf-8 > win-1251

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS