|
Вопрос # 2 963/ вопрос открыт / |
|
Доброго времени суток, уважаемые эксперты!
Вопрос может быть совсем банальный... но ппц.
Допустим имеется программа. простенькая. На форме всего 1 компонент. TMemo (Или TRich, без разницы)
Напишем туда "ПРивет". Нормально пишется, возьмем, вырежем это привет, вставим допустим в окошечко аськи, все хорошо, все норм... но если сделать пару простых действий...
Возьмем, и стандартной функцией сохраним этот текст в файл
Memo1.Lines.SaveToFile('text.txt');
Далее его можно загрузить снова
Memo1.Lines.LoadFormFile('text.txt');
ОН так же нормально загрузится... но если уже из загруженного скопировать слово привет куданибуть... он уже выдаст Äýâèä Áåëëü вместо русских букв, а если открыть в обычном блокноте только что сохраненный файл.. блокнот его нормально откроет, а вот из блокнота хоть куда этот текст вставляй - будут одни вопросики
??? ????? ?????.... Так же если в самом начале, просто в TMemo скопировать чтонибуть из Windows (например нажать на файле "новая папка12.rar" переименовать, текст скопировать и вставить в Memo), то точно так же будут вместо русских букв одни вопросики...
при чем английский текст не трогается. все эти глюки с русским... мб кто то сталкивался с подобным ? инет молчит как партизан((( За раннее Премного благодарен...
 |
Вопрос задал: BloodVIRUS (статус: Посетитель)
Вопрос отправлен: 2 июля 2009, 00:39
Состояние вопроса: открыт, ответов: 2.
|
Ответ #1. Отвечает эксперт: Вадим К
Здравствуйте, BloodVIRUS!
Старая известная проблема Windows при копировании с неюникодного приложения (а все делфовские до 2007 включительно такими являются) в юникодное. В это этом случае Windows поступает "очень мудро и использует текущую раскладку клавиатуры как базовую для перевода. И получаем абракадабру, так как часто бывает выставлена английская раскладка. А надо что бы перед копированием в обоих приложениях уже была выставлена русская (или другая нужная национальная кодировка).
А все другие последствия, которые наблюдаются - следствие многократного преобразования. Знаки вопроса - это ситуация "докодировались". когда неюникодный текст расценивается как юникодный и пытается в неюникод сконвертировать с неверной кодовой таблицей. В принципе каждый случай в цепочке преобразований могу объяснить, но смысл?
Лечить? делать юникодные приложения, либо позвонить в майкрософт... хотя они вряд ли сделают.
А так - мучиться, не забывая переключать раскладку.
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 2 июля 2009, 03:31
|
Ответ #2. Отвечает эксперт: min@y™
Попробуй ковырнуть настройки раскладки в реестре и перезагрузиться.
Где ковырять - смотри скриншот в прицепе. К ответу прикреплён файл. Загрузить » (срок хранения: 60 дней с момента отправки ответа)
 |
Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 2 июля 2009, 08:23
|
Мини-форум вопроса
Всего сообщений: 6; последнее сообщение — 7 июля 2009, 16:55; участников в обсуждении: 2.
2 июля 2009, 09:26: Вопрос перемещён из тематического раздела Delphi » Прочее в раздел Delphi » Алгоритмы, преобразования модератором Ерёмин А.А.
|
BloodVIRUS (статус: Посетитель), 2 июля 2009, 09:31 [#1]:
Такс, ладно, сейчас попробовал из блокнота сохранить текст в юникоде, и из буфера повставлять текст везде, раньше там были или вопросики или иероглифы, сейчас все нормально. Но если через
memo1.Lines.LoadFormFile('text.txt') загружать, то отображаются такие кракобяки яю0720=85, ну и наверно следовательный вопрос:
Как сохрянять текст из Memo в юникоде, и как его загружать ?
|
|
Вадим К (статус: Академик), 2 июля 2009, 09:52 [#2]:
видите 0400? (у меня в фаерфоксе это даже тут отображается).
Выходов три
- научиться конвертировать текст с юнинкода и обратно
- перейти на делфи 2009
- использовать компоненты tnt.
Галочка "подтверждения прочтения" - вселенское зло.
|
|
BloodVIRUS (статус: Посетитель), 2 июля 2009, 15:19 [#3]:
- использовать компоненты tnt.
Около 2х часов ищу уже, у меня delphi 7, нашел много компонентов, но не один не ставится, есть у вас ссылки на точно работающие компоненты ? зараннее премного благодарен...
|
|
Вадим К (статус: Академик), 2 июля 2009, 15:30 [#4]:
tnt теперь стали платные. поэтому "ссылки на точно работающие" это уже варёз....
Галочка "подтверждения прочтения" - вселенское зло.
|
|
BloodVIRUS (статус: Посетитель), 2 июля 2009, 16:15 [#5]:
Ну а аналоги есть ? Мне надо то 2 вещи. Из мемо сохранять в юникоде, и открывать в юникоде... все...
|
|
BloodVIRUS (статус: Посетитель), 7 июля 2009, 16:55 [#6]:
Все, всем спасибо за помощь в данном вопросе. UNICODE компонентов нет. Есть только TNT,TNS и их производные, не один крякнутый не работает, а покупать их нет резона. Скачал Delphi 2009, полностью им доволен, он даже удобнее 7ки. Всем спасибо
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|