Exemplo n.º 1
0
        public string encode(string text)
        {
            CLAUZ     clauz = new CLAUZ();
            ArrayList al    = new ArrayList();

            foreach (char c in text)
            {
                CharClass ccNew = clauz.cc;
                if (c < 0x100)
                {
                    ccNew = CharClass.ansi;
                }
                else
                {
                    ccNew = CharClass.iso2022jp;
                }

                if (clauz.cc != ccNew)
                {
                    al.Add(clauz);
                    clauz    = new CLAUZ();
                    clauz.cc = ccNew;
                }
                clauz.text += c;
            }
            al.Add(clauz);

            Encoding enc = Encoding.GetEncoding("iso-2022-jp");
            string   res = "";

            foreach (CLAUZ cl in al)
            {
                switch (cl.cc)
                {
                case CharClass.ansi:
                    res += cl.text;
                    break;

                case CharClass.iso2022jp:
                    res += "=?ISO-2022-JP?B?" + Convert.ToBase64String(enc.GetBytes(cl.text)) + "?=";
                    break;
                }
            }
            return(res);
        }
Exemplo n.º 2
0
        public string encode(string text) {
            CLAUZ clauz = new CLAUZ();
            ArrayList al = new ArrayList();
            foreach (char c in text) {
                CharClass ccNew = clauz.cc;
                if (c < 0x100) {
                    ccNew = CharClass.ansi;
                }
                else {
                    ccNew = CharClass.iso2022jp;
                }

                if (clauz.cc != ccNew) {
                    al.Add(clauz);
                    clauz = new CLAUZ();
                    clauz.cc = ccNew;
                }
                clauz.text += c;
            }
            al.Add(clauz);

            Encoding enc = Encoding.GetEncoding("iso-2022-jp");
            string res = "";
            foreach (CLAUZ cl in al) {
                switch (cl.cc) {
                    case CharClass.ansi:
                        res += cl.text;
                        break;
                    case CharClass.iso2022jp:
                        res += "=?ISO-2022-JP?B?" + Convert.ToBase64String(enc.GetBytes(cl.text)) + "?=";
                        break;
                }
            }
            return res;
        }