Вы можете использовать HttpEncoder.HeaderNameValueEncode Method в .NET Framework 4.0 и выше.
Для предыдущих версий .NET Framework вы можете использовать собственный кодер, используя логику, указанную на странице справки HttpEncoder.HeaderNameValueEncode:
Обновление:
Как указывает OliverBock, метод HttpEncoder.HeaderNameValueEncode защищен и внутренне. Я пошел в проект с открытым исходным кодом Mono и нашел реализацию моно
void HeaderNameValueEncode (string headerName, string headerValue, out string encodedHeaderName, out string encodedHeaderValue)
{
if (String.IsNullOrEmpty (headerName))
encodedHeaderName = headerName;
else
encodedHeaderName = EncodeHeaderString (headerName);
if (String.IsNullOrEmpty (headerValue))
encodedHeaderValue = headerValue;
else
encodedHeaderValue = EncodeHeaderString (headerValue);
}
static void StringBuilderAppend (string s, ref StringBuilder sb)
{
if (sb == null)
sb = new StringBuilder (s);
else
sb.Append (s);
}
static string EncodeHeaderString (string input)
{
StringBuilder sb = null;
for (int i = 0; i < input.Length; i++) {
char ch = input [i];
if ((ch < 32 && ch != 9) || ch == 127)
StringBuilderAppend (String.Format ("%{0:x2}", (int)ch), ref sb);
}
if (sb != null)
return sb.ToString ();
return input;
}
Just FYI
[здесь] ( https://github.com/mono/mono/ блоб / ведущий / MCS / класс / System.Web / System.Web.Util / HttpEncoder.cs )
Параметр - это переменная, которая является частью сигнатуры метода (объявление метода). Аргумент - это выражение, используемое при вызове метода.
Рассмотрим следующий код:
void Foo(int i, float f)
{
// Do things
}
void Bar()
{
int anInt = 1;
Foo(anInt, 2.0);
}
Здесь i
и f
- параметры, а anInt
и 2.0
- аргументы.