# package quotedprintable

`import "mime/quotedprintable"`

Package quotedprintable implements quoted-printable encoding as specified by RFC 2045.

reader.go writer.go

## type Reader

Reader is a quoted-printable decoder.

### func NewReader

NewReader returns a quoted-printable reader, decoding from r.

Example

Code:play

    for _, s := range []string{
        `=48=65=6C=6C=6F=2C=20=47=6F=70=68=65=72=73=21`,
        `invalid escape: <b style="font-size: 200%">hello</b>`,
        "Hello, Gophers! This symbol will be unescaped: =3D and this will be written in =\r\none line.",
    } {
        b, err := ioutil.ReadAll(quotedprintable.NewReader(strings.NewReader(s)))
        fmt.Printf("%s %v\n", b, err)
    }

Output:

    Hello, Gophers! <nil>
    invalid escape: <b style="font-size: 200%">hello</b> <nil>
    Hello, Gophers! This symbol will be unescaped: = and this will be written in one line. <nil>

### func (*Reader) Read

Read reads and decodes quoted-printable data from the underlying reader.

## type Writer

A Writer is a quoted-printable writer that implements io.WriteCloser.

### func NewWriter

NewWriter returns a new Writer that writes to w.

Example

Code:play

    w := quotedprintable.NewWriter(os.Stdout)
    w.Write([]byte("These symbols will be escaped: = \t"))
    w.Close()

Output:

    These symbols will be escaped: =3D =09

### func (*Writer) Close

Close closes the Writer, flushing any unwritten data to the underlying io.Writer, but does not close the underlying io.Writer.

### func (*Writer) Write

Write encodes p using quoted-printable encoding and writes it to the underlying io.Writer. It limits line length to 76 characters. The encoded bytes are not necessarily flushed until the Writer is closed.