encoding

package
v0.16.1 Latest Latest
Warning

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

Go to latest
Published: Sep 9, 2018 License: MIT Imports: 7 Imported by: 0

Documentation

Overview

Package encoding 提供了框架内对编码和字符集功能的支持。

Index

Constants

View Source
const DefaultMimeType = "application/octet-stream"

DefaultMimeType 默认的媒体类型,在不能获取输入和输出的媒体类型时, 会采用此值作为其默认值。

若编码函数中指定该类型的函数,则会使用该编码优先匹配 */* 等格式的请求。

Variables

View Source
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 无效")
)
View Source
var Nil *struct{}

Nil 表示向客户端输出 nil 值。

这是一个只有类型但是值为空的变量。在某些特殊情况下, 如果需要向客户端输出一个 nil 值的内容,可以使用此值。

Functions

func AcceptCharset

func AcceptCharset(header string) (name string, enc xencoding.Encoding, err error)

AcceptCharset 根据 Accept-Charset 报头的内容获取其最值的字符集信息。

传递 * 获取返回默认的字符集相关信息,即 utf-8 其它值则按值查找,或是在找不到时返回空值。

返回的 name 值可能会与 header 中指定的不一样,比如 gb_2312 会被转换成 gbk

func AddCharset deprecated

func AddCharset(name string, c xencoding.Encoding) error

AddCharset 添加字符集

Deprecated: 不再启作用

func AddCharsets deprecated

func AddCharsets(cs map[string]xencoding.Encoding) error

AddCharsets 添加多个字符集

Deprecated: 不再启作用

func AddMarshal

func AddMarshal(name string, m MarshalFunc) error

AddMarshal 添加编码函数

func AddMarshals

func AddMarshals(ms map[string]MarshalFunc) error

AddMarshals 添加多个编码函数

func AddUnmarshal

func AddUnmarshal(name string, m UnmarshalFunc) error

AddUnmarshal 添加编码函数

func AddUnmarshals

func AddUnmarshals(ms map[string]UnmarshalFunc) error

AddUnmarshals 添加多个编码函数

func BuildContentType

func BuildContentType(mimetype, charset string) string

BuildContentType 生成一个 content-type

若值为空,则会使用默认值代替

func CharsetIsNop

func CharsetIsNop(enc xencoding.Encoding) bool

CharsetIsNop 指定的编码是否不需要任何额外操作

func ParseContentType

func ParseContentType(v string) (mimetype, charset string, err error)

ParseContentType 从 content-type 中获取编码和字符集

若客户端传回的是空值,则会使用默认值代替。

返回值中,mimetype 一律返回小写的值,charset 则原样返回

https://tools.ietf.org/html/rfc7231#section-3.1.1.1

Types

type MarshalFunc

type MarshalFunc func(v interface{}) ([]byte, error)

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

type UnmarshalFunc func([]byte, interface{}) error

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 函数。

Jump to

Keyboard shortcuts

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