Documentation
¶
Overview ¶
Package encoding 提供了框架内对编码和字符集功能的支持。
Index ¶
- Constants
- Variables
- func AcceptCharset(header string) (name string, enc xencoding.Encoding, err error)
- func AddCharset(name string, c xencoding.Encoding) error
- func AddCharsets(cs map[string]xencoding.Encoding) error
- func AddMarshal(name string, m MarshalFunc) error
- func AddMarshals(ms map[string]MarshalFunc) error
- func AddUnmarshal(name string, m UnmarshalFunc) error
- func AddUnmarshals(ms map[string]UnmarshalFunc) error
- func BuildContentType(mimetype, charset string) string
- func CharsetIsNop(enc xencoding.Encoding) bool
- func ParseContentType(v string) (mimetype, charset string, err error)
- type MarshalFunc
- type UnmarshalFunc
Constants ¶
const DefaultMimeType = "application/octet-stream"
DefaultMimeType 默认的媒体类型,在不能获取输入和输出的媒体类型时, 会采用此值作为其默认值。
若编码函数中指定该类型的函数,则会使用该编码优先匹配 */* 等格式的请求。
Variables ¶
var ( // ErrExists 表示指定名称的项目已经存在。 // // 在 AddCharset、Addmarshal 和 AddUnmarshal 中会返回此错误。 ErrExists = errors.New("该名称的项目已经存在") // ErrInvalidCharset 无效的字符集。 // // 一般在 Accept-Charset 或是 Content-Type // 等报头中指定的字符集无效或是不被支持。 ErrInvalidCharset = errors.New("无效的字符集") // ErrInvalidMimeType 无效的 mimetype 值,一般为 content-type 或 // Accept 等报头指定的 mimetype 值无效。 ErrInvalidMimeType = errors.New("mimetype 无效") )
var Nil *struct{}
Nil 表示向客户端输出 nil 值。
这是一个只有类型但是值为空的变量。在某些特殊情况下, 如果需要向客户端输出一个 nil 值的内容,可以使用此值。
Functions ¶
func AcceptCharset ¶
AcceptCharset 根据 Accept-Charset 报头的内容获取其最值的字符集信息。
传递 * 获取返回默认的字符集相关信息,即 utf-8 其它值则按值查找,或是在找不到时返回空值。
返回的 name 值可能会与 header 中指定的不一样,比如 gb_2312 会被转换成 gbk
func AddCharset ¶
AddCharset 添加字符集 Deprecated: 不再启作用
func AddCharsets ¶
AddCharsets 添加多个字符集 Deprecated: 不再启作用
func ParseContentType ¶
ParseContentType 从 content-type 中获取编码和字符集
若客户端传回的是空值,则会使用默认值代替。
返回值中,mimetype 一律返回小写的值,charset 则原样返回
Types ¶
type MarshalFunc ¶
MarshalFunc 将一个对象转换成 []byte 内容时,所采用的接口。
func AcceptMimeType ¶
func AcceptMimeType(header string) (string, MarshalFunc, error)
AcceptMimeType 从 header 解析出当前请求所需要的解 mimetype 名称和对应的解码函数
*/* 或是空值 表示匹配任意内容,一般会选择第一个元素作匹配; xx/* 表示匹配以 xx/ 开头的任意元素,一般会选择 xx/* 开头的第一个元素; xx/ 表示完全匹配以 xx/ 的内容 如果传递的内容如下:
application/json;q=0.9,*/*;q=1
则因为 */* 的 q 值比较高,而返回 */* 匹配的内容
在不完全匹配的情况下,返回值的名称依然是具体名称。
text/*;q=0.9
返回的名称可能是:
text/plain
type UnmarshalFunc ¶
UnmarshalFunc 将客户端内容转换成一个对象时,所采用的接口。
func ContentType ¶
func ContentType(header string) (UnmarshalFunc, xencoding.Encoding, error)
ContentType 从 content-type 报头中解析出其使用的编码和字符集函数。
Directories
¶
| Path | Synopsis |
|---|---|
|
Package encodingtest 针对文本内容的编解码实现,仅作为测试用例。
|
Package encodingtest 针对文本内容的编解码实现,仅作为测试用例。 |
|
Package form 用于处理 www-form-urlencoded 编码 func read(w http.ResponseWriter, r *http.Request) { ctx := web.New(w, r) vals := urls.Values{} !ctx.Read(vals) } func write(w http.ResponseWriter, r *http.Request) { ctx := web.New(w, r) vals := urls.Values{} vals.Add("name", "caixw") ctx.Render(http.StatusOK, vals, nil) }
|
Package form 用于处理 www-form-urlencoded 编码 func read(w http.ResponseWriter, r *http.Request) { ctx := web.New(w, r) vals := urls.Values{} !ctx.Read(vals) } func write(w http.ResponseWriter, r *http.Request) { ctx := web.New(w, r) vals := urls.Values{} vals.Add("name", "caixw") ctx.Render(http.StatusOK, vals, nil) } |
|
Package gob 提供 GOB 格式的编解码
|
Package gob 提供 GOB 格式的编解码 |
|
Package html 提供输出 HTML 内容的 encoding.MarshalFunc 函数。
|
Package html 提供输出 HTML 内容的 encoding.MarshalFunc 函数。 |