Package mime

Overview ▾

包mime实现了MIME规范的一部分.

Constants

const (
    // BEncoding represents Base64 encoding scheme as defined by RFC 2045.
    BEncoding = WordEncoder('b')
    // QEncoding represents the Q-encoding scheme as defined by RFC 2047.
    QEncoding = WordEncoder('q')
)

Variables

如果找到媒体类型值,但解析可选参数时出错,则ParseMediaType返回ErrInvalidMediaParameter

var ErrInvalidMediaParameter = errors.New("mime: invalid media parameter")

func AddExtensionType

func AddExtensionType(ext, typ string) error

AddExtensionType将与扩展名ext相关联的MIME类型设置为typ. 扩展名应以前导点开头,例如" .html".

func ExtensionsByType 1.5

func ExtensionsByType(typ string) ([]string, error)

ExtensionsByType返回已知与MIME类型typ相关的扩展. 返回的扩展名均以" .html"开头. 当typ没有关联的扩展名时,ExtensionsByType返回一个nil slice.

func FormatMediaType

func FormatMediaType(t string, param map[string]string) string

FormatMediaType将媒体类型t和参数param序列化为符合RFC 2045和RFC 2616的媒体类型.类型和参数名称以小写形式编写. 当任何参数导致标准冲突时,FormatMediaType返回空字符串.

func ParseMediaType

func ParseMediaType(v string) (mediatype string, params map[string]string, err error)

ParseMediaType根据RFC 1521解析媒体类型值和任何可选参数.媒体类型是Content-Type和Content-Disposition标头(RFC 2183)中的值. 成功后,ParseMediaType返回转换为小写并修剪空白和非空映射的媒体类型. 如果解析可选参数时出错,则将返回媒体类型以及错误ErrInvalidMediaParameter. 返回的映射params从小写属性映射到保留大小写的属性值.

func TypeByExtension

func TypeByExtension(ext string) string

TypeByExtension返回与文件扩展名ext相关联的MIME类型. 扩展名ext应该以前导点开头,例如" .html". 当ext没有关联的类型时,TypeByExtension返回"".

扩展名首先区分大小写,然后不区分大小写.

内置表很小,但在Unix上,如果使用以下一个或多个名称可用,则通过本地系统的mime.types文件进行扩充:

/etc/mime.types
/etc/apache2/mime.types
/etc/apache/mime.types

在Windows上,MIME类型是从注册表中提取的.

文本类型的字符集参数默认设置为" utf-8".

type WordDecoder 1.5

WordDecoder解码包含RFC 2047编码字的MIME标头.

type WordDecoder struct {
    // CharsetReader, if non-nil, defines a function to generate
    // charset-conversion readers, converting from the provided
    // charset into UTF-8.
    // Charsets are always lower-case. utf-8, utf-8 and us-ascii charsets
    // are handled by default.
    // One of the CharsetReader's result values must be non-nil.
    CharsetReader func(charset string, input io.Reader) (io.Reader, error)
}

func (*WordDecoder) Decode 1.5

func (d *WordDecoder) Decode(word string) (string, error)

解码解码RFC 2047编码字.

Example

¡Hola, señor!
HELLO!

func (*WordDecoder) DecodeHeader 1.5

func (d *WordDecoder) DecodeHeader(header string) (string, error)

DecodeHeader解码给定字符串的所有编码词. 当且仅当d的CharsetReader返回错误时,它才返回错误.

Example

Éric <eric@example.org>, Anaïs <anais@example.org>
¡Hola, señor!
HELLO WORLD!

type WordEncoder 1.5

WordEncoder是RFC 2047编码字编码器.

type WordEncoder byte

func (WordEncoder) Encode 1.5

func (e WordEncoder) Encode(charset, s string) string

Encode返回s的编码词形式. 如果s是不带特殊字符的ASCII,则将其保持不变. 提供的字符集是的IANA字符集名称. 不区分大小写.

Example

=?utf-8?q?=C2=A1Hola,_se=C3=B1or!?=
Hello!
=?UTF-8?b?wqFIb2xhLCBzZcOxb3Ih?=
=?utf-8?q?Caf=E9?=

Subdirectories

Name Synopsis
..
multipart 包多部分实现了RFC 2046中定义的MIME多部分解析.
quotedprintable 包quotedprintable实施RFC 2045指定的quoted-printable编码.

by  ICOPY.SITE