У меня есть приложение Java, отправляющее HTTP-запросы приложению C #.Приложение C # использует HTTPListener для прослушивания запросов и ответов.На стороне Java я кодирую URL, используя UTF-8.
Когда я отправляю символ \, он кодируется как% 5C, как и ожидалось, но на стороне C # он становится символом /.Кодировка для объекта запроса - Windows-1252, которая, я думаю, может быть причиной проблемы.Как установить кодировку по умолчанию в UTF-8?
В настоящее время я делаю это для преобразования кодировки:
foreach (string key in request.QueryString.Keys)
{
if (key != null)
{
byte[] sourceBytes =request.ContentEncoding.GetBytes(request.QueryString[key]);
string value = Encoding.UTF8.GetString(sourceBytes));
}
}
Это обрабатывает символы, не являющиеся ASCII, которые я также отправляю, но не устраняет проблему косой черты.Изучение request.QueryString [key] в отладчике показывает, что / уже существует.