2007年5月29日星期二

quoted-printable简称qp编码解码 c#

public static string ConvertFromQPString(string quoted_printableString) { string InputString = quoted_printableString; StringBuilder builder1 = new StringBuilder(); InputString = InputString.Replace("=\r\n", ""); for (int num1 = 0; num1 <>= 0) { byte[] buffer1 = new byte[1] { (byte)HexToDec(InputString.Substring(num1 + 1, 2)) }; builder1.Append(Encoding.Default.GetString(buffer1)); num1 += 2; } } else if (InputString[num1 + 1] != '=') { byte[] buffer2 = new byte[2] { (byte)HexToDec(InputString.Substring(num1 + 1, 2)), (byte)HexToDec(InputString.Substring(num1 + 4, 2)) }; builder1.Append(Encoding.Default.GetString(buffer2)); num1 += 5; } } catch { builder1.Append(InputString.Substring(num1, 1)); } } else { builder1.Append(InputString.Substring(num1, 1)); } } return builder1.ToString(); } private static int HexToDec(string hex) { int num1 = 0; string text1 = "0123456789ABCDEF"; for (int num2 = 0; num2 < hex.Length; num2++) { if (text1.IndexOf(hex[num2]) == -1) { return -1; } num1 = (num1 * 0x10) + text1.IndexOf(hex[num2]); } return num1; } //

没有评论: