                     result.append("=\r\n")
                     charCount = 0
                 }
-                result.append(UnicodeScalar(61))
-                result.append(c.hexString().uppercased())
+                //result.append(UnicodeScalar(61).escaped(asASCII: false))
+                result.append("=" + c.hexString().uppercased())
                 charCount+=3
             }
             

        var charCount = 0
        
        var result = ""
        result.reserveCapacity(string.characters.count)
        
        while let c = gen.next() {
            switch c {
            case 32...60, 62...126:
                charCount += 1
                result.append(UnicodeScalar(c))
            case 13:
                continue
            case 10:
                if result.characters.last == " " || result.characters.last == "\t" {
                    result.append("=\r\n")
                    charCount = 0
                } else {

        
        // reserve space
        var decodedString = ""
        decodedString.reserveCapacity(string.count)
        
        // main parse loop
        while let c = gen.next() {
