Форум » » TCP/ip и русские символы » Ответить

TCP/ip и русские символы

Mejon: Добрый день! При использовании модулей tcp/ip клиент (simpl), при попытке обмена текстовыми сообщениями, содержащими русские буквы, все, что имеет код символа больше 127 приходит как '?'. Существует ли возможность это как-то победить?.. Контроллер - PRO2

Ответов - 7

Вячеслав: Конкретнее про какое устройство речь? Не IPAD ли часом?

Mejon: Нет, не iPad. В данном случае обычный simpl tcp/ip client. С другой стороны - самописный провайдер погоды и Push сервис

Вячеслав: Если данные с SIMPL+модуля уходят попробуйте для начала поиграться с директивами // #ENCODING_ASCII // #ENCODING_UTF16 Например разкомметировать 2-ю из них. Ну или интегрировать в модуль самописный конвертер в UTF16 или что там на дальней стороне ждут от вашей программы Раз уходит что то большее 127,то проблема может и на удаленной стороне. ТА сторона может и не понимать расширенную ASCII кодировку, зато понимать юникод UTF8 или UTF16. К сожалению дебагеру не всегда стоит верить. И видимая в дебагере UTF кодировка может таковой не являться(как будь то есть еще некий скрытый признак).Иногда приходилось делать двойное преобразование из UTF16 в ASCII потом опять в UTF16.


Mejon: Вячеслав пишет: Если данные с SIMPL+модуля уходят попробуйте для начала поиграться с директивами // #ENCODING_ASCII // #ENCODING_UTF16 Например разкомметировать 2-ю из них. Эти директивы судя по документации относятся к 3му поколению. У меня PRO2. Что касается конвертера, фактически сейчас так и сделано. Но это возможно только для самописных сервисов. А внешние сервисы (в данном случае - pushingbox) никак..

eoulianov: На RX TCP/IP клиента приходят знаки вопроса - это видно в debugger, так? Тогда ничего вы из них не выскребете, насилуйте тот "самописный провайдер погоды", чтобы слал не ??? а хоть что-то другое. Во второй серии каждый входящий входящий БАЙТ считается СИМВОЛОМ и представляется как один знак в RX с кодом 0..255, без исключений.

Игорь K.: Ни разу не видел EXM (знак "?"), на каком бы языке не передавались текстовые сообщения в описываемой ситуации. Вероятно, очень, что имеется в виду уже отображение на панели. Буквенные символы бабайских языков передаются специальными способами, однозначно и просто и их всегда можно дешифровать. Совет тоже прост: идите другим путем, используйте другой сервис. Можно же избежать использования кириллицы в отображении времени и погоды. Вячеслав, почему дебаггеру "не всегда можно верить"? Абсолютно согласен с тов. eoulianov.

Mejon: Да, вы были правы, резалось на стороне сервера (точнее на стороне компонент-оберток сокетов).. Пошаговое включение элементов цепочки выявило проблему. Спасибо!



полная версия страницы