Documentation ¶
Index ¶
- Constants
- func ConvertToUTF8String(charset string, textBytes []byte) (string, error)
- func DecodeExtHeader(input string) string
- func FindCharsetInHTML(html string) string
- func FromIDHeader(v string) string
- func NewCharsetReader(charset string, input io.Reader) (io.Reader, error)
- func NewExtMimeDecoder() *mime.WordDecoder
- func RFC2047Decode(s string) string
- func ToIDHeader(v string) string
- type Base64Cleaner
- type QPCleaner
Constants ¶
const MaxQPLineLen = 1024
MaxQPLineLen is the maximum line length we allow before inserting `=\r\n`. Prevents buffer overflows in mime/quotedprintable.Reader.
Variables ¶
This section is empty.
Functions ¶
func ConvertToUTF8String ¶
ConvertToUTF8String uses the provided charset to decode a slice of bytes into a normal UTF-8 string.
func DecodeExtHeader ¶
DecodeExtHeader decodes a single line (per RFC 2047, aka Message Header Extensions) using Golang's mime.WordDecoder.
func FindCharsetInHTML ¶
FindCharsetInHTML looks for charset in the HTML meta tag (v4.01 and v5).
func FromIDHeader ¶
FromIDHeader decodes a Content-ID or Message-ID header value (RFC 2392) into a utf-8 string. Example: "<foo%3fbar+baz>" becomes "foo?bar baz".
func NewCharsetReader ¶
NewCharsetReader generates charset-conversion readers, converting from the provided charset into UTF-8. CharsetReader is a factory signature defined by Go's mime.WordDecoder.
This function is similar to: https://godoc.org/golang.org/x/net/html/charset#NewReaderLabel
func NewExtMimeDecoder ¶
func NewExtMimeDecoder() *mime.WordDecoder
NewExtMimeDecoder creates new MIME word decoder which allows decoding of additional charsets.
func RFC2047Decode ¶
RFC2047Decode returns a decoded string if the input uses RFC2047 encoding, otherwise it will return the input.
RFC2047 Example: `=?UTF-8?B?bmFtZT0iw7DCn8KUwoo=?=`
func ToIDHeader ¶
ToIDHeader encodes a Content-ID or Message-ID header value (RFC 2392) from a utf-8 string.
Types ¶
type Base64Cleaner ¶
type Base64Cleaner struct { // Report of non-whitespace characters detected while cleaning base64 data. Errors []error // contains filtered or unexported fields }
Base64Cleaner improves the tolerance of in Go's built-in base64 decoder by stripping out characters that would cause decoding to fail.
func NewBase64Cleaner ¶
func NewBase64Cleaner(r io.Reader) *Base64Cleaner
NewBase64Cleaner returns a Base64Cleaner object for the specified reader. Base64Cleaner implements the io.Reader interface.
type QPCleaner ¶
type QPCleaner struct {
// contains filtered or unexported fields
}
QPCleaner scans quoted printable content for invalid characters and encodes them so that Go's quoted-printable decoder does not abort with an error.
func NewQPCleaner ¶
NewQPCleaner returns a QPCleaner for the specified reader.