Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ TryDecode5987()

static bool System.Net.Http.Headers.ContentDispositionHeaderValue.TryDecode5987 ( string input,
out string output )
inlinestaticprivate

Definition at line 421 of file ContentDispositionHeaderValue.cs.

422 {
423 output = null;
424 int num = input.IndexOf('\'');
425 if (num == -1)
426 {
427 return false;
428 }
429 int num2 = input.LastIndexOf('\'');
430 if (num == num2 || input.IndexOf('\'', num + 1) != num2)
431 {
432 return false;
433 }
434 string name = input.Substring(0, num);
435 string text = input.Substring(num2 + 1, input.Length - (num2 + 1));
437 try
438 {
439 Encoding encoding = Encoding.GetEncoding(name);
440 byte[] array = new byte[text.Length];
441 int num3 = 0;
442 for (int i = 0; i < text.Length; i++)
443 {
444 if (Uri.IsHexEncoding(text, i))
445 {
446 array[num3++] = (byte)Uri.HexUnescape(text, ref i);
447 i--;
448 continue;
449 }
450 if (num3 > 0)
451 {
452 stringBuilder.Append(encoding.GetString(array, 0, num3));
453 num3 = 0;
454 }
455 stringBuilder.Append(text[i]);
456 }
457 if (num3 > 0)
458 {
459 stringBuilder.Append(encoding.GetString(array, 0, num3));
460 }
461 }
462 catch (ArgumentException)
463 {
464 return false;
465 }
466 output = stringBuilder.ToString();
467 return true;
468 }
static Encoding GetEncoding(int codepage)
Definition Encoding.cs:593
unsafe string GetString(byte *bytes, int byteCount)
Definition Encoding.cs:973

References System.array, System.Text.Encoding.GetEncoding(), System.Text.Encoding.GetString(), System.Uri.HexUnescape(), System.input, System.Uri.IsHexEncoding(), and System.text.

Referenced by System.Net.Http.Headers.ContentDispositionHeaderValue.GetName().