Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 17.12.2015
Сообщений: 6
1

При приеме данных с сокета отображается неправильная кодировка

18.12.2015, 08:39. Показов 1287. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Народ привет, может кто подскажет. Возникла такая проблема:
Принимаю данные (данные в 16-ом виде) из сокета через TCP. Данные принимаются в переменную типа AnsiString.
Но косяк в том, что данные приходят с русскими символами. Вместо FFFF приходит яяяя. Подскажите как сделать чтобы выводило FFFF.

Добавлено через 1 час 18 минут
Получается что у меня переменная AnsiString в кодировке Windows-1251, а мне нужно получить её код в hex и вывести в Memo.
я = FF.

Коды тут есть.
(foxtools.ru/ASCII#1251)

Добавлено через 10 часов 19 минут
Спасибо нашёл решение проблемы. Получилось так.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  // Чтение данных из порта.
  Srecv = ClientSocket1->Socket->ReceiveText();
 
  // Переведём строку из Windows 1251 в hex вид.
 
  unsigned char CSrecv;
  // Переменная для вида в hex.
  AnsiString Srecv_Hex;
  for(int i=1; i<=Srecv.Length(); i++)
  {
        CSrecv = Srecv[i];
        Srecv_Hex += IntToHex(CSrecv, 2);
        if(i<Srecv.Length())
                Srecv_Hex+=" ";
  }
  Memo3->Lines->Add(Srecv_Hex);
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.12.2015, 08:39
Ответы с готовыми решениями:

Неправильная кодировка при выборке данных из БД
Совсем уже замонался.. Не обращался бы если бы не прочитал кучу хелпов и форумов. Вообщем нид...

Неправильная кодировка при вводе данных
Из темы уже все перепробовала. 1. В файле httpd.conf Apache # # Denwer: default charset. #...

Неправильная кодировка при помещении данных в DataSource
Доброй ночи, господа! Есть функция которая добывает информацию и возвращает ее в виде массива...

Неправильная кодировка при выборке данных из SQLite
Здравствуйте, надеюсь на вашу помощь в следующей пробелме У меня программа, назовем ее главное...

5
Почетный модератор
Эксперт С++
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
18.12.2015, 09:57 2
Попробуйте заменить AnsiString на UnicodeString или WideString.
0
0 / 0 / 0
Регистрация: 17.12.2015
Сообщений: 6
18.12.2015, 11:08  [ТС] 3
Проблема в том что из сокета приходит в AnsiSting и отправляется тоже в AnsiString.

Добавлено через 12 минут
Ещё возникла проблема обратного перевода. Подскажите как это можно сделать.
0
Почетный модератор
Эксперт С++
5850 / 2861 / 392
Регистрация: 01.11.2011
Сообщений: 6,907
18.12.2015, 12:02 4
666berkut20007, попробуйте сделать то, что я сказал чуть выше. И, если не поможет, то приведите пожалуйста образцы входных-выходных строк и код, которым вы это все получаете.
0
0 / 0 / 0
Регистрация: 17.12.2015
Сообщений: 6
18.12.2015, 18:20  [ТС] 5
Нашёл решение. Спасибо вам за ответы. Ваш вариант не успел проверить т.к. не было времени.
Вот текст что у меня получился:

C++
1
2
3
4
5
  AnsiString Ssend_hex = "0x";
  Ssend = Edit3->Text;
  Ssend_hex += Ssend;
 
  ClientSocket1->Socket->SendText(StrToInt(Ssend_hex));
Ssend переменная типа AnsiString (отправляется в TCP порт).
Помогла функция: StrToInt(). Но для того что бы работала т.к. мне надо, нужно было вначало строки вставлять "0x"

Добавлено через 5 часов 30 минут
Народ может еще кто подскажет, как отправить в сокет данные типа int через этот компонент?
0
0 / 0 / 0
Регистрация: 17.12.2015
Сообщений: 6
21.12.2015, 11:05  [ТС] 6
Нашёл решение:
C++
1
2
3
int j, MyBuf[100];
MyBuf[0] = 0x30026101;
ClientSocket1->Socket->SendBuf(&MyBuf[0], sizeof(MyBuf[0]));
0
21.12.2015, 11:05
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.12.2015, 11:05
Помогаю со студенческими работами здесь

Неправильная кодировка при ВВОДЕ данных в MySQL из PHP
Перерыл весь форум, но проблема так и не решилась. Дано: компьютер с Windows 7 и установленным...

Неправильная кодировка при экспортировании данных из DBGrid в Excel
Здравствуйте. При экспортировании данных из DBGrid в Excel вместо кириллицы данные отображаются...

Неправильная кодировка в импортированной базе данных
С локального компа сделал экспорт базы даных на хостин, а там все руские буквы поменяло на знак...

Восстановление данных. Неправильная кодировка .txt файла
Здравствуйте, друзья. Такая ситуация: По неосмотрительности удалил данные, среди которых был...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru