map.go

  1// Copyright 2015 The Go Authors. All rights reserved.
  2// Use of this source code is governed by a BSD-style
  3// license that can be found in the LICENSE file.
  4
  5package htmlindex
  6
  7import (
  8	"golang.org/x/text/encoding"
  9	"golang.org/x/text/encoding/charmap"
 10	"golang.org/x/text/encoding/internal/identifier"
 11	"golang.org/x/text/encoding/japanese"
 12	"golang.org/x/text/encoding/korean"
 13	"golang.org/x/text/encoding/simplifiedchinese"
 14	"golang.org/x/text/encoding/traditionalchinese"
 15	"golang.org/x/text/encoding/unicode"
 16)
 17
 18// mibMap maps a MIB identifier to an htmlEncoding index.
 19var mibMap = map[identifier.MIB]htmlEncoding{
 20	identifier.UTF8:              utf8,
 21	identifier.UTF16BE:           utf16be,
 22	identifier.UTF16LE:           utf16le,
 23	identifier.IBM866:            ibm866,
 24	identifier.ISOLatin2:         iso8859_2,
 25	identifier.ISOLatin3:         iso8859_3,
 26	identifier.ISOLatin4:         iso8859_4,
 27	identifier.ISOLatinCyrillic:  iso8859_5,
 28	identifier.ISOLatinArabic:    iso8859_6,
 29	identifier.ISOLatinGreek:     iso8859_7,
 30	identifier.ISOLatinHebrew:    iso8859_8,
 31	identifier.ISO88598I:         iso8859_8I,
 32	identifier.ISOLatin6:         iso8859_10,
 33	identifier.ISO885913:         iso8859_13,
 34	identifier.ISO885914:         iso8859_14,
 35	identifier.ISO885915:         iso8859_15,
 36	identifier.ISO885916:         iso8859_16,
 37	identifier.KOI8R:             koi8r,
 38	identifier.KOI8U:             koi8u,
 39	identifier.Macintosh:         macintosh,
 40	identifier.MacintoshCyrillic: macintoshCyrillic,
 41	identifier.Windows874:        windows874,
 42	identifier.Windows1250:       windows1250,
 43	identifier.Windows1251:       windows1251,
 44	identifier.Windows1252:       windows1252,
 45	identifier.Windows1253:       windows1253,
 46	identifier.Windows1254:       windows1254,
 47	identifier.Windows1255:       windows1255,
 48	identifier.Windows1256:       windows1256,
 49	identifier.Windows1257:       windows1257,
 50	identifier.Windows1258:       windows1258,
 51	identifier.XUserDefined:      xUserDefined,
 52	identifier.GBK:               gbk,
 53	identifier.GB18030:           gb18030,
 54	identifier.Big5:              big5,
 55	identifier.EUCPkdFmtJapanese: eucjp,
 56	identifier.ISO2022JP:         iso2022jp,
 57	identifier.ShiftJIS:          shiftJIS,
 58	identifier.EUCKR:             euckr,
 59	identifier.Replacement:       replacement,
 60}
 61
 62// encodings maps the internal htmlEncoding to an Encoding.
 63// TODO: consider using a reusable index in encoding/internal.
 64var encodings = [numEncodings]encoding.Encoding{
 65	utf8:              unicode.UTF8,
 66	ibm866:            charmap.CodePage866,
 67	iso8859_2:         charmap.ISO8859_2,
 68	iso8859_3:         charmap.ISO8859_3,
 69	iso8859_4:         charmap.ISO8859_4,
 70	iso8859_5:         charmap.ISO8859_5,
 71	iso8859_6:         charmap.ISO8859_6,
 72	iso8859_7:         charmap.ISO8859_7,
 73	iso8859_8:         charmap.ISO8859_8,
 74	iso8859_8I:        charmap.ISO8859_8I,
 75	iso8859_10:        charmap.ISO8859_10,
 76	iso8859_13:        charmap.ISO8859_13,
 77	iso8859_14:        charmap.ISO8859_14,
 78	iso8859_15:        charmap.ISO8859_15,
 79	iso8859_16:        charmap.ISO8859_16,
 80	koi8r:             charmap.KOI8R,
 81	koi8u:             charmap.KOI8U,
 82	macintosh:         charmap.Macintosh,
 83	windows874:        charmap.Windows874,
 84	windows1250:       charmap.Windows1250,
 85	windows1251:       charmap.Windows1251,
 86	windows1252:       charmap.Windows1252,
 87	windows1253:       charmap.Windows1253,
 88	windows1254:       charmap.Windows1254,
 89	windows1255:       charmap.Windows1255,
 90	windows1256:       charmap.Windows1256,
 91	windows1257:       charmap.Windows1257,
 92	windows1258:       charmap.Windows1258,
 93	macintoshCyrillic: charmap.MacintoshCyrillic,
 94	gbk:               simplifiedchinese.GBK,
 95	gb18030:           simplifiedchinese.GB18030,
 96	big5:              traditionalchinese.Big5,
 97	eucjp:             japanese.EUCJP,
 98	iso2022jp:         japanese.ISO2022JP,
 99	shiftJIS:          japanese.ShiftJIS,
100	euckr:             korean.EUCKR,
101	replacement:       encoding.Replacement,
102	utf16be:           unicode.UTF16(unicode.BigEndian, unicode.IgnoreBOM),
103	utf16le:           unicode.UTF16(unicode.LittleEndian, unicode.IgnoreBOM),
104	xUserDefined:      charmap.XUserDefined,
105}