quotedprintable

package module
v1.0.0-...-1aaa60c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 13, 2015 License: MIT Imports: 9 Imported by: 5

README

quotedprintable

Introduction

Package quotedprintable implements quoted-printable and message header encoding as specified by RFC 2045 and RFC 2047.

It is similar to the package currently being developed in the standard library: https://codereview.appspot.com/132680044/

It requires Go 1.3 or newer.

Some links:

Documentation

https://godoc.org/gopkg.in/alexcesaro/quotedprintable.v1

Documentation

Overview

Package quotedprintable implements quoted-printable and message header encoding as specified by RFC 2045 and RFC 2047.

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func Decode

func Decode(dst, src []byte) (n int, err error)

Decode decodes src into at most MaxDecodedLen(len(src)) bytes to dst, returning the actual number of bytes written to dst.

func DecodeHeader

func DecodeHeader(header string) (text, charset string, err error)

DecodeHeader decodes a MIME header by decoding all encoded-words of the header. The returned text is encoded in the returned charset. Text is not necessarily encoded in UTF-8. Returned charset is always upper case. This function does not support decoding headers with multiple encoded-words using different charsets.

Example
// text is not encoded in UTF-8 but in ISO-8859-1
text, charset, err := DecodeHeader("=?ISO-8859-1?Q?Caf=C3?=")
if err != nil {
	panic(err)
}
fmt.Printf("Text: %q, charset: %q", text, charset)
Output:

Text: "Caf\xc3", charset: "ISO-8859-1"

func DecodeString

func DecodeString(s string) ([]byte, error)

DecodeString returns the bytes represented by the quoted-printable string s.

Example
str := "=C2=A1Hola, se=C3=B1or!"
data, err := DecodeString(str)
if err != nil {
	fmt.Println("error:", err)
	return
}
fmt.Printf("%s\n", data)
Output:

¡Hola, señor!

func Encode

func Encode(dst, src []byte) int

Encode encodes src into at most MaxEncodedLen(len(src)) bytes to dst, returning the actual number of bytes written to dst.

func EncodeToString

func EncodeToString(src []byte) string

EncodeToString returns the quoted-printable encoding of src.

Example
data := []byte("¡Hola, señor!")
str := EncodeToString(data)
fmt.Println(str)
Output:

=C2=A1Hola, se=C3=B1or!

func MaxDecodedLen

func MaxDecodedLen(n int) int

MaxDecodedLen returns the maximum length of a decoding of n source bytes.

func MaxEncodedLen

func MaxEncodedLen(n int) int

MaxEncodedLen returns the maximum length of an encoding of n source bytes.

func NewDecoder

func NewDecoder(r io.Reader) io.Reader

NewDecoder returns a new quoted-printable stream decoder.

func NewEncoder

func NewEncoder(w io.Writer) io.Writer

NewEncoder returns a new quoted-printable stream encoder. Data written to the returned writer will be encoded and then written to w.

Example
input := []byte("Café")
encoder := NewEncoder(os.Stdout)
encoder.Write(input)
Output:

Caf=C3=A9

Types

type Encoding

type Encoding string

Encoding represents the encoding used in encoded-words. It must be one of the two encodings defined in RFC 2047 ("B" or "Q" encoding).

const (
	// Q represents the Q-encoding defined in RFC 2047.
	Q Encoding = "Q"
	// B represents the Base64 encoding defined in RFC 2045.
	B Encoding = "B"
)

func (Encoding) NewHeaderEncoder

func (enc Encoding) NewHeaderEncoder(charset string) *HeaderEncoder

NewHeaderEncoder returns a new HeaderEncoder to encode strings in the specified charset.

type HeaderEncoder

type HeaderEncoder struct {
	// contains filtered or unexported fields
}

A HeaderEncoder is an RFC 2047 encoded-word encoder.

func (*HeaderEncoder) Encode

func (e *HeaderEncoder) Encode(s string) string

Encode encodes a string to be used as a MIME header value. It encodes the input only if it contains non-ASCII characters.

Directories

Path Synopsis
Package internal contains quoted-printable internals shared by mime and mime/quotedprintable.
Package internal contains quoted-printable internals shared by mime and mime/quotedprintable.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL