zoukankan      html  css  js  c++  java
  • C# 对QuotedPrintable进行解码的方法

             Quoted-Printable简称QP, 在Email系统中使用。它通常用于少量文本方式的8位字符的编码

    QP的编码方式比较简单,它的算法是:读一个字符,如果ASCII码大于127,即字符的 第8位是1的话,

    进行编码,否则忽略(有时也对7位字符编码)


    在c#中可以使用这个方法来对Quoted-Printable进行解码:


    //Quoted-Printable 解码
    public static string DecodeQP(string codeString)
    {
        //编码的字符集
        string mailEncoding = "GB2312";
    
        StringBuilder strBud = new StringBuilder();
        for (int i = 0; i < codeString.Length; i++)
        {
            if (codeString[i] == '=')
            {
                if (Convert.ToInt32((codeString[i + 1] + codeString[i + 2]).ToString(), 16) < 127)
                {
                    strBud.Append(
                    Encoding.GetEncoding(mailEncoding).GetString(
                    new byte[] { Convert.ToByte((codeString[i + 1] + codeString[i + 2]).ToString(), 16) }));
                    
                    i += 2;
                    continue;
                }
    
                if (codeString[i + 3] == '=')
                {
                    strBud.Append(
                    Encoding.GetEncoding(mailEncoding).GetString(
                    new byte[] { Convert.ToByte((codeString[i + 1].ToString() + codeString[i + 2].ToString()), 16),
                     Convert.ToByte((codeString[i + 4].ToString() + codeString[i + 5].ToString()), 16) }));
                     
                    i += 5;
                    continue;
                }
            }
            else
            {
                strBud.Append(codeString[i]);
            }
        }
        return strBud.ToString();
    }



  • 相关阅读:
    SVN服务器搭建和使用(一)
    SVN服务器搭建和使用(一)
    lua loadstring与loadfile
    lua loadstring与loadfile
    lua_getstack
    lua_getstack
    让程序在崩溃时体面的退出之Dump文件
    bzoj1054
    poj3678
    poj2749
  • 原文地址:https://www.cnblogs.com/hanwest/p/2881885.html
Copyright © 2011-2022 走看看