在参照上篇文章《QuotedPrintable编码c#类代码》中给出的QuotedPrintable编码的c#类代码后,本篇将给出QuotedPrintable解码的C#类代码,该代码已经在VS.NET2003下编译并测试通过,现将编解码类和测试程序给出,仅供参考,不足处请读者指出。
QuotedPrintable编码/解码类:
using
System.Text;
using System.IO;
using System;
namespace NoPaste
... {
public class QuotedPrintable
...{
/**//// <summary>
/// QuotedPrintable解码函数
/// </summary>
/// <param name="input">需要解码的QuotedPrintable字符串</param>
/// <returns>解码后的字符串</returns>
public static string Decode(string input)
...{
System.Text.Encoding encoding = System.Text.Encoding.GetEncoding("gb2312");
StringBuilder result = new StringBuilder();
StringReader sr = new StringReader(input);
string line = sr.ReadLine();
while( line!=null )
...{
bool addCRLF = true;
byte[] bytes = System.Text.Encoding.ASCII.GetBytes( line.ToCharArray() );
for(int i=0;i<bytes.Length;i++)
...{
if( ( bytes[i]>=33 && bytes[i]<=60 ) || ( bytes[i]>=62 && bytes[i]<=126 ) || bytes[i]==9 || bytes[i]==32)
...{
result.Append( Convert.ToChar( bytes[i] ) );
continue;
using System.IO;
using System;
namespace NoPaste
... {
public class QuotedPrintable
...{
/**//// <summary>
/// QuotedPrintable解码函数
/// </summary>
/// <param name="input">需要解码的QuotedPrintable字符串</param>
/// <returns>解码后的字符串</returns>
public static string Decode(string input)
...{
System.Text.Encoding encoding = System.Text.Encoding.GetEncoding("gb2312");
StringBuilder result = new StringBuilder();
StringReader sr = new StringReader(input);
string line = sr.ReadLine();
while( line!=null )
...{
bool addCRLF = true;
byte[] bytes = System.Text.Encoding.ASCII.GetBytes( line.ToCharArray() );
for(int i=0;i<bytes.Length;i++)
...{
if( ( bytes[i]>=33 && bytes[i]<=60 ) || ( bytes[i]>=62 && bytes[i]<=126 ) || bytes[i]==9 || bytes[i]==32)
...{
result.Append( Convert.ToChar( bytes[i] ) );
continue;