Использование правильной кодировки при чтении из TCP/Port
Я читаю поток байтов (byte[]
) из TCP/Port и преобразование части полученного массива в char[]
Предположим, что я не знаком ни с характеристиками порта, ни с окружающей средой на другой стороне этого порта. Все, что я знаю, это то, что есть порт.
Часть данных, которые я получаю, является закодированным символом валюты британского фунта (£). Когда я использую кодировку ASCII для преобразования, эти символы появляются как ?
var charArray = Encoding.ASCII.GetChars(byteArray);
Тем не менее, когда я использую UTF-7, все в порядке:
var charArray = Encoding.UTF7.GetChars(byteArray);
Я должен добавить, что при попытке UTF-8 это не работает.
Это было методом проб и ошибок, и я не совсем уверен, почему это могло сработать. Вместо того, чтобы просто развернуть решение, я подумал, что постараюсь понять, почему это сработало.
Это просто, что система на другой стороне порта передает в UTF-7, или что-то еще происходит?