Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / отобразить utf-8 в TMemo / 22 сообщений из 22, страница 1 из 1
02.02.2018, 15:51
    #39595713
muk07
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отобразить utf-8 в TMemo
Существует ли возможность правильно отобразить текст utf-8 в TMemo
чтобы кириллица не отображалась крякозябрами?
...
Рейтинг: 0 / 0
02.02.2018, 15:56
    #39595716
Vizit0r
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отобразить utf-8 в TMemo
как текст загружается в мемо?
...
Рейтинг: 0 / 0
02.02.2018, 16:01
    #39595722
muk07
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отобразить utf-8 в TMemo
грузится из бд
...
Рейтинг: 0 / 0
02.02.2018, 16:06
    #39595728
Arioch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отобразить utf-8 в TMemo
muk07,

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

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

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

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

Если построчно, то вперед юзать TEncoding для перекодировки.
...
Рейтинг: 0 / 0
02.02.2018, 16:19
    #39595738
muk07
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отобразить utf-8 в TMemo
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
02.02.2018, 16:29
    #39595748
Vizit0r
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
отобразить utf-8 в TMemo
muk071) у меня c++ builder от BDS 2006

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

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

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

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

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

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

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

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

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

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

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

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

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


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