Почему при отправке данных на сервер появляется вопросительный знак? - PullRequest
0 голосов
/ 30 сентября 2019

Я передаю данные, используя соединение UDP с программой на моем сервере. Данные передаются модемом от Quectel BC66. AT-команда от терминала показана ниже:

AT+QISEND=0,20,12345678910111213112

OK

SEND OK

Когда данные появляются на сервере вместо того, чтобы показывать отправленные данные, они показывают вопросительные знаки:

enter image description here

Код программы показан ниже:

class Program
    {
        static void Main(string[] args)
        {
            try
            {
                IPEndPoint ip = new IPEndPoint(IPAddress.Any, 29030);
                UdpClient server = new UdpClient(ip);
                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine("[UDP] [Listenning]");
                while (true)
                {
                    byte[] data = server.Receive(ref ip);
                    string ch = Encoding.Unicode.GetString(data, 0, data.Length);
                    Console.ForegroundColor = ConsoleColor.Green;
                    Console.WriteLine(ch + " " + DateTime.Now.ToString());
                    string serv_msg = "Server received the data";
                    byte[] msg = Encoding.Unicode.GetBytes(serv_msg);
                    server.Send(msg, msg.Length, ip);
                    server.Send(new byte[] { 1 }, 1, ip);
                }
            }
            catch
            {
                Console.WriteLine("Warrning:connection failed");
                Console.ReadKey();
            }
        }
    }
}

Есть ли у вас какие-либо предложения о том, как отображать отправленные данные, идентичные на серверной программе?

1 Ответ

0 голосов
/ 30 сентября 2019

Похоже, что ваше терминальное приложение не поддерживает символы Unicode, которые вы пытаетесь показать.

Попробуйте изменить настройки, чтобы разрешить символы Unicode, или переключитесь на другой эмулятор терминала, например ConEmu .

Надеюсь, это поможет!

...