В эти дни я сталкиваюсь с проблемой кодирования строки из массива байтов.Я использую сокет для получения данных с сервера в буфер, затем создаю MemoryStream
для чтения данных из этого буфера в tempBuffer фиксированной длины от 30 до более поздних GetString
из tempBuffer.
byte tempBuff = new byte[30];
streamReader.Read(tempBuff, 0, 30);
string moTaSkill = Encoding.UTF8.GetString(tempBuff);
Я использую textBox для отображения этой строки, как показано ниже:
tbSkill.Text = moTaSkill;
В текстовом поле всегда отображается неправильно:
- При отладке я вижу moTaSkill = "SKill ofгерой "
- При отображении в текстовом поле это просто" Умение "или иногда" Умение "или" Умение "
Я пытался создать tempBuffer с длиной равнойдлина строки я получу.Но безуспешно.
Может кто-нибудь сказать мне какое-нибудь решение, чтобы это исправить?