powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / отобразить utf-8 в TMemo
22 сообщений из 22, страница 1 из 1
отобразить utf-8 в TMemo
    #39595713
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Существует ли возможность правильно отобразить текст utf-8 в TMemo
чтобы кириллица не отображалась крякозябрами?
...
Рейтинг: 0 / 0
отобразить utf-8 в TMemo
    #39595716
Vizit0r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как текст загружается в мемо?
...
Рейтинг: 0 / 0
отобразить utf-8 в TMemo
    #39595722
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
грузится из бд
...
Рейтинг: 0 / 0
отобразить utf-8 в TMemo
    #39595728
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
muk07,

как именно грузится?
http://maddog.sitengine.ru/smart-question-ru.html#code

а заодно:
какая версия Дельфи?
в какой кодировке текст в БД ?
в строковые переменные текст попадает в какой кодировке?

Возможность существует, море возможностей, а что у вас не получилось никто не знает
...
Рейтинг: 0 / 0
отобразить utf-8 в TMemo
    #39595732
Vizit0r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
из файла грузить просто
Memo1.Lines.LoadFromFile('c:\Stealth\Output\Scripts\zzzz.sc',TEncoding.UTF8);

незнаю, как именно из БД ты грузишь, но из стрима легко и быстро так делать.

Если построчно, то вперед юзать TEncoding для перекодировки.
...
Рейтинг: 0 / 0
отобразить utf-8 в TMemo
    #39595738
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) у меня c++ builder от BDS 2006
2) текст в кодировке utf-8 или windows-1251 лежит в БД
3) читаю я его так memTaskFile->Text=queTaskFile->FieldByName("FileContent")->AsString;
4) в TMemo он выглядит:

п»ї<!DOCTYPE HTML>
<html>
<!-- здесь будет ваше решение -->
</html>

5)
а в notepad++ (если задать в настройках кодировку utf-8):
<!DOCTYPE HTML>
<html>
<!-- здесь будет ваше решение -->
</html>
...
Рейтинг: 0 / 0
отобразить utf-8 в TMemo
    #39595748
Vizit0r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
muk071) у меня c++ builder от BDS 2006

было там что-то типа UTF8Decode, если не ошибаюсь с названием.
...
Рейтинг: 0 / 0
отобразить utf-8 в TMemo
    #39595750
Любезный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что за БД и компоненты?
Может, проще задать кодировку Коннекта Win1251 в компонентах?
...
Рейтинг: 0 / 0
отобразить utf-8 в TMemo
    #39595755
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а там текст может быть на наескольких языках, или только на русском ?

если только на русском - настраивай БД, чтобы она сама перекодировала и отдавала тебе в 1251 вместо utf-8

если на нескольких - изучай TNT Unicode Controls
...
Рейтинг: 0 / 0
отобразить utf-8 в TMemo
    #39595757
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не совсем:
UTF8Decode - Convert an UTF-8 encoded ansistring to a unicodestring
но этим можно воспользоваться для преобразования, спасибо

нашёл на http://www.cyberforum.ru/cpp-builder/thread516441.html
функцию.
Завтра попробую
...
Рейтинг: 0 / 0
отобразить utf-8 в TMemo
    #39595759
Vizit0r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
muk07не совсем:
UTF8Decode - Convert an UTF-8 encoded ansistring to a unicodestring
но этим можно воспользоваться для преобразования, спасибо

нашёл на http://www.cyberforum.ru/cpp-builder/thread516441.html
функцию.
Завтра попробую

так же вроде было 2 варианта - в юникод и в анси.
...
Рейтинг: 0 / 0
отобразить utf-8 в TMemo
    #39595763
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vizit0r, может быть ,завтра поищу ещё.
Ещё раз спасибо за подсказку.
...
Рейтинг: 0 / 0
отобразить utf-8 в TMemo
    #39595771
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
muk07Convert an UTF-8 encoded ansistring to a unicodestring

Это в Delphi 2009+ а раньше никаких unicodestring в природе не было
...
Рейтинг: 0 / 0
отобразить utf-8 в TMemo
    #39596102
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
muk07Как выяснилось, ответ краток: Utf8ToAnsi(AnsiString)
Никто из откликнувшихся этого не знал.

А теперь посмотри на свои собственные сообщения и скажи: из какого из них следует, что
а) Твоё TMemo отображает текст в ANSI кодировке;
б) В твоей базе хранится только текст, способный быть представленным в ANSI кодировке без
потерь;
в) ANSI кодировка на твоей Windows установлена в кириллицу.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
отобразить utf-8 в TMemo
    #39596129
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторDimitry Sibiryakov:
а) Твоё TMemo отображает текст в ANSI кодировке;
б) В твоей базе хранится только текст, способный быть представленным в ANSI кодировке без
потерь;
в) ANSI кодировка на твоей Windows установлена в кириллицу.

откуда такие выводы? это не так. Это Вы так решили.
a) не только ANSI
б) поле где текст имеет тип varbinary там м. быть txt, rtf, jpg, utf8(ещё не было написано)
в) а это необязательно
...
Рейтинг: 0 / 0
отобразить utf-8 в TMemo
    #39596143
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
muk07в) а это необязательно
Если на компьютере будет установлена не русская винда или просто в ней не будет выбран русский язык для не-unicode приложений, то русского текста вы в memo не увидите, хоть utf8toansi используйте, хоть что.
...
Рейтинг: 0 / 0
отобразить utf-8 в TMemo
    #39596168
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
muk07это не так.

Если это не так, то использование функции Utf8ToAnsi() не является правильным ответом в
этом топике и в будущем доставит тебе много забавных часов в поисках багов.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
отобразить utf-8 в TMemo
    #39596243
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
muk07a) не только ANSIСерьезно? TMemo в BDS 2006 (по условиям задачи) - является ANSI версией контрола, и соответственно может отображать только ANSI. Для отображения юникода используются другие среды и/или контролы
...
Рейтинг: 0 / 0
отобразить utf-8 в TMemo
    #39596262
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
white_nigger, согласен, я нечетко написал - все др представления преобразуются к ansi.
В этом и состоял вопрос.
...
Рейтинг: 0 / 0
отобразить utf-8 в TMemo
    #39596263
Любезный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сами они не преобразуются. Это ты должен сначала преобразовать текст и затем отдать его в мемо на отображение.
...
Рейтинг: 0 / 0
отобразить utf-8 в TMemo
    #39596264
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я так и делаю
...
Рейтинг: 0 / 0
отобразить utf-8 в TMemo
    #39596919
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

во всяком случае предложения разобраться в сути проблемы он считает наездом
ему нужно решение дешево и сердито, чтобы сию минуту заработало, и не важно какие потенциальные грабли это закладывает на будущее (если у программы есть будущее)

его программа - ему и решать в конце концов

может быть искать баги в будущем не он будет, а он получит деньги и спрыгнет
или может быть программа одноразовая и через пару месяцев навсегда улетит в мусорку
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / отобразить utf-8 в TMemo
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]