Я знаю, что мой заголовок не очень хороший, но я не знал, как написать эту проблему. Я получаю XML через TCP-соединение, но проблема в том, что строка заполнена "\ 0", поэтому я не вижу сообщения, когда использую эту строковую переменную. Я могу сделать string.length и увидеть, что он заполнен, но не может добраться до текста. Я пытался заменить метод, и он работал, но я знаю, что это не правильное решение. Итак, вот мой вопрос, как я могу правильно получить текст?
TcpListener tcpListener = new TcpListener(Convert.ToInt16(_Port));
tcpListener.Start();
while (true)
{
Socket handlerSocket = tcpListener.AcceptSocket();
if (handlerSocket.Connected)
{
Control.CheckForIllegalCrossThreadCalls = false;
NetworkStream networkStream = new NetworkStream(handlerSocket);
byte[] myReadBuffer = new byte[102400000];
int numberOfBytesRead = 0;
string myCompleteMessage = "";
do
{
numberOfBytesRead = networkStream.Read(myReadBuffer, 0, myReadBuffer.Length);
myCompleteMessage += Encoding.UTF8.GetString(myReadBuffer,
}
while (networkStream.DataAvailable);
Console.WriteLine("Text: "+myCompleteMessage);
}
}
Я пытался изменить Encoding.UTF8 на Encoding.ASCII и Encoding.UNICODE, но это не сработало.
Обновление: моя проблема все еще продолжается, данные, которые я получаю, имеют "\ 0" перед каждым символом. Я не могу найти почему .. Я использую замену и вставляю \ 0 снова, как только я хочу отправить данные обратно. Может ли это быть из-за какой-то кодировки? Я также пробовал getEncodings и пробовал много кодовых страниц, но они не работают