Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Проблема с русским языком в проекте Delphi XE


Автор: N0m 24.6.2013, 17:50
Доброго времени суток!
Имеется приложение написанное в Delphi XE, прекрасно работающее в ОС Windows 7 RUS. В немецкой версии ОС Windows 7 дело обстоит плачевно)). Программа получает периодически текст из сети интернет и русский текст отображается некорректно (кракозябрами). При изменении настроек в немецкой версии ОС Windows 7 в языках и региональных стандартах панели управления все нормально работает. Данное решение проблемы кажется не особо кашерным))
Пробовал использовать 
Код

SetThreadLocale(1049);

результатов ноль(
Сниффером смотрел в нем так же русский текст отображается кракозябрами)).
Посоветуйте, как грамотно справиться с данной бедой, возможно кто-то сталкивался.

Русский текст на элементах управления нормально отображается, проблема лишь с русским текстом полученным из сети интернет и отображаемым с помощью Memo.(в ОС Windows 7 RUS все нормально) 

Спасибо, за ответы. smile 

Автор: Illusion Dolphin 24.6.2013, 18:16
Просто текст не юникодный без указания кодировки. Поэтомк при переводе в юникод получаются крякозяблы если codepage по умолчанию не русская. Думаю, что единственное правильное решение - вручную перевести локаль при необходимости через MultiByteToWideChar

Цитата

SetThreadLocale(1049);

Создана совсем для другого, как пишут тут http://stackoverflow.com/questions/1059544/setthreadlocale-and-utf8

Автор: MetalFan 25.6.2013, 11:25
Цитата(Illusion Dolphin @  24.6.2013,  18:16 Найти цитируемый пост)
MultiByteToWideChar

Это вчерашний день, тем более для XE)
класс TEncoding наше всё! )))

Автор: N0m 25.6.2013, 12:58
ВСЕМ БОЛЬШОЕ СПАСИБО!
буду пробывать.

Автор: Akella 26.6.2013, 11:32
Цитата(N0m @  24.6.2013,  17:50 Найти цитируемый пост)
Программа получает периодически текст из сети


Даже не знаю, что и сказать.
С чего Вы взяли, что непонятно какой текст, непонятно откуда, непонятно в какой кодировке должен отображаться именно так, как хотите ВЫ!?
И не совсем понятно, что такое "текст из сети"  smile 

Автор: N0m 27.6.2013, 11:03
Программа получает периодически текст из сети интернет smile 
жаль, что вы поздно зашли(

Автор: Akella 27.6.2013, 15:25
Цитата(N0m @  27.6.2013,  11:03 Найти цитируемый пост)
 текст из сети интернет


Мой хрустальный шар мне подсказывает, что программа скачивает html странички. Как правило, большинство сайтов в кодировке UTF-8. Открой исходный текст страницы и сам увидишь кодировку.
Цитата

<meta http-equiv="content-type" content="text/html; charset=utf-8" /> 


Отсюда и нужно плясать

Автор: MetalFan 28.6.2013, 09:56
Цитата(Akella @  27.6.2013,  15:25 Найти цитируемый пост)
Открой исходный текст страницы

Или http-хидер ответа,
Цитата

Content-Type: text/plain; charset=utf-8

Автор: N0m 28.6.2013, 19:04
Спасибо всем за ответы, разобрался!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)