| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Сети > Indy отпрвка строк в Unicode |
| Автор: klyaksa 3.9.2010, 15:41 |
| Нужно отправлять строки по сети... Программа есть, работает, но на Дельфи 2006. Переделываю по 2009/2010. Различие нашел вот в чем, было типа Str:String; IdTCPClient.IOHandler.WriteLn(Str); Str := AContext.Connection.IOHandler.ReadLn; станет типа IdTCPClient.IOHandler.WriteLn(Str, enUTF8); Str := AContext.Connection.IOHandler.ReadLn(enUTF8); НО! Как я понимаю нужно еще в ручную перевести из String в enUTF8, а потом обратно? Автоматически оно не перекодируется? Как? Ошибка при работе в том, что при наличии русского текста в строке получаю в конце #$D#$A, при англ. все нормально. |
| Автор: klyaksa 3.9.2010, 20:34 |
| С логикой все более-менее (надеюсь более) нормально... #$D#$A появляется когда в тексте есть русские буквы, при анг, иероглифах все нормально... #$D#$A - как я понимаю это #13#10 которые добавляются к строке при передаче... Вот почему они в данном случае остаются? Пока поставил костыль function IdReadLn(IdIOHandler: TIdIOHandler): String; begin Result := Trim(IdIOHandler.ReadLn(enUTF8)); end; Но хочу разобраться в проблеме... ЗЫ все части проекта переделаны... |
| Автор: Akella 5.9.2010, 19:15 |
| klyaksa, читай http://forum.vingrad.ru/forum/topic-237714.html http://forum.vingrad.ru/forum/topic-126445.html |
| Автор: klyaksa 6.9.2010, 19:44 |
| В свежей версии костыль не нужен... Вопрос снят. |
| Автор: Akella 7.9.2010, 09:51 |
| klyaksa, у нас принято в током случае отмечать вопрос, как решенный, а не снимать его. |