Documentation
¶
Overview ¶
Package decode provides byte stream filters to convert or assert form of mail-related data.
Index ¶
- Variables
- func Charset(charset string, r io.Reader) (io.Reader, error)
- func FixUTF8(data []byte) []byte
- func Flow(format, delsp string, r io.Reader) io.Reader
- func IsTerminalFriendly(r rune) bool
- func MailHeader(rawmailheader string) (string, error)
- func TerminalFriendly(r io.Reader) io.Reader
- func Transfer(r io.Reader, encodings ...string) (io.Reader, error)
- func UTF8(lenient bool, r io.Reader) io.Reader
- type AustereReader
- type ErrUnknownCharset
Constants ¶
This section is empty.
Variables ¶
Functions ¶
func Charset ¶
Charsets "" and "us-ascii" are generously interpreted as "utf-8".
func TerminalFriendly ¶
[2023-02-15, jfrech] One spam mail I viewed was encoded in UTF-8 yet claimed "charset=iso-8859-1". Thus, a UTF-8 sharp s "ß" got (correctly) decoded to "Ã\u009F", abruptly cutting of my terminal emulator's representation of stdout.
func Transfer ¶
Transfer decodes the given reader, last encoding applied first. Transfer is trying to be lenient: it may assume UTF-8 on e.g. undeclared Latin-1 input and thus create unicode/utf8.RuneError.
encodings are applied in reverse (i.e. the order of encodings is the same as the order would be in a generalised "Content-Transfer-Encoding" header).
Types ¶
type AustereReader ¶
type AustereReader struct {
// contains filtered or unexported fields
}
func Eightbit ¶
func Eightbit(r io.Reader) *AustereReader
func Sevenbit ¶
func Sevenbit(r io.Reader) *AustereReader
func StrictlyEightbit ¶
func StrictlyEightbit(r io.Reader) *AustereReader
func StrictlySevenbit ¶
func StrictlySevenbit(r io.Reader) *AustereReader
func (*AustereReader) Read ¶
func (ar *AustereReader) Read(p []byte) (n int, err error)
Cf. [Wood99, p. 47]
type ErrUnknownCharset ¶
type ErrUnknownCharset struct {
Charset string
}
func (*ErrUnknownCharset) Error ¶
func (err *ErrUnknownCharset) Error() string