| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- // Package charset provides common text encodings for HTML documents.
- //
- // The mapping from encoding labels to encodings is defined at
- // http://encoding.spec.whatwg.org.
- package charset
- import (
- "errors"
- "strings"
- "code.google.com/p/go.text/encoding"
- "code.google.com/p/go.text/transform"
- )
- // Encoding returns the encoding with the specified label, or nil if label is
- // not one of the standard encodings for HTML. Matching is case-insensitive
- // and ignores leading and trailing whitespace.
- func Encoding(label string) encoding.Encoding {
- label = strings.ToLower(strings.Trim(label, "\t\n\r\f "))
- return encodings[label]
- }
- type utf8Encoding struct{}
- func (utf8Encoding) NewDecoder() transform.Transformer {
- return transform.Nop
- }
- func (utf8Encoding) NewEncoder() transform.Transformer {
- return transform.Nop
- }
- var ErrReplacementEncoding = errors.New("charset: ISO-2022-CN and ISO-2022-KR are obsolete encodings for HTML")
- type errorTransformer struct {
- err error
- }
- func (t errorTransformer) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) {
- return 0, 0, t.err
- }
- type replacementEncoding struct{}
- func (replacementEncoding) NewDecoder() transform.Transformer {
- return errorTransformer{ErrReplacementEncoding}
- }
- func (replacementEncoding) NewEncoder() transform.Transformer {
- return transform.Nop
- }
|