Я новичок в C#, и у меня проблема с квадратными белыми символами в текстовом поле на C#. (см. снимок экрана ниже)
Я реализовал клиент-серверную программу для общения, поддерживаемую System.Net.Sockets.
. Внутри каждой программы byte[] array= new byte[10025]
, которая никогда не бывает полностью заполнена, но в текстовом поле отображаются пустые символы внутри. Можете ли вы помочь мне с удалением этих персонажей?
Спасибо!
Белый символ C# текстовое поле
Читать код стороны клиента:
http://pastebin.com/W3Pc3BPG
try
{
while (true)
{
serverStream = clientSocket.GetStream();
int buffSize = 0;
byte[] inStream = new byte[10025];
buffSize = clientSocket.ReceiveBufferSize;
serverStream.Read(inStream, 0, inStream.Length);
string returndata = System.Text.Encoding.UTF8.GetString(inStream);
readData = "" + returndata;
msg();
}
} catch(Exception e)
{
ctThread.Join();
}
При чтении из сокета, возвращение из 'метода Read' будет целое число, содержащее число байтов, которые вы читаете. Вы * должны * уважать это число - остальные символы в 'array' будут мусором. Если вы обновите сообщение с помощью кода чтения сокета, мы можем предложить подходящее исправление (но в основном это «Только взять правильное количество символов из« массива ») –
У вас проблема с кодировкой. Если вы используете замену текстового поля на RichTextBox. Если вы используете какой-либо поток, убедитесь, что кодировка UTF8. По умолчанию используется ASCII, который изменит символы, не пригодные для печати. Также могут быть символы Unicode, которые могут понадобиться использовать Unicode (не UTF8). – jdweng
вы можете опубликовать код ваша коммуникационная процедура? –