func TestName(t *testing.T) { for i, tc := range []struct { desc string enc encoding.Encoding name string err error }{{ "defined encoding", charmap.ISO8859_2, "iso-8859-2", nil, }, { "defined Unicode encoding", unicode.UTF16(unicode.BigEndian, unicode.IgnoreBOM), "utf-16be", nil, }, { "undefined Unicode encoding in HTML standard", unicode.UTF16(unicode.BigEndian, unicode.UseBOM), "", errUnsupported, }, { "undefined other encoding in HTML standard", charmap.CodePage437, "", errUnsupported, }, { "unknown encoding", encoding.Nop, "", errUnknown, }} { name, err := Name(tc.enc) if name != tc.name || err != tc.err { t.Errorf("%d:%s: got %q, %v; want %q, %v", i, tc.desc, name, err, tc.name, tc.err) } } }
iso8859_13: charmap.ISO8859_13, iso8859_14: charmap.ISO8859_14, iso8859_15: charmap.ISO8859_15, iso8859_16: charmap.ISO8859_16, koi8r: charmap.KOI8R, koi8u: charmap.KOI8U, macintosh: charmap.Macintosh, windows874: charmap.Windows874, windows1250: charmap.Windows1250, windows1251: charmap.Windows1251, windows1252: charmap.Windows1252, windows1253: charmap.Windows1253, windows1254: charmap.Windows1254, windows1255: charmap.Windows1255, windows1256: charmap.Windows1256, windows1257: charmap.Windows1257, windows1258: charmap.Windows1258, macintoshCyrillic: charmap.MacintoshCyrillic, gb18030: simplifiedchinese.GB18030, hzgb2312: simplifiedchinese.HZGB2312, big5: traditionalchinese.Big5, eucjp: japanese.EUCJP, iso2022jp: japanese.ISO2022JP, shiftJIS: japanese.ShiftJIS, euckr: korean.EUCKR, replacement: encoding.Replacement, utf16be: unicode.UTF16(unicode.BigEndian, unicode.IgnoreBOM), utf16le: unicode.UTF16(unicode.LittleEndian, unicode.IgnoreBOM), xUserDefined: charmap.XUserDefined, }
utf8: "Heļlo", }, { e: charmap.Windows1258, encoded: "Hell\xf5", utf8: "Hellơ", }, { e: charmap.XUserDefined, encoded: "\x00\x40\x7f\x80\xab\xff", utf8: "\u0000\u0040\u007f\uf780\uf7ab\uf7ff", }, // UTF-16 tests. { e: unicode.UTF16(unicode.BigEndian, unicode.IgnoreBOM), encoded: "\x00\x57\x00\xe4\xd8\x35\xdd\x65", utf8: "\x57\u00e4\U0001d565", }, { e: utf16BEEB, encPrefix: "\xfe\xff", encoded: "\x00\x57\x00\xe4\xd8\x35\xdd\x65", utf8: "\x57\u00e4\U0001d565", }, { e: unicode.UTF16(unicode.LittleEndian, unicode.IgnoreBOM), encoded: "\x57\x00\xe4\x00\x35\xd8\x65\xdd", utf8: "\x57\u00e4\U0001d565", }, {
"euc-jp": {japanese.EUCJP, "euc-jp"}, "x-euc-jp": {japanese.EUCJP, "euc-jp"}, "csiso2022jp": {japanese.ISO2022JP, "iso-2022-jp"}, "iso-2022-jp": {japanese.ISO2022JP, "iso-2022-jp"}, "csshiftjis": {japanese.ShiftJIS, "shift_jis"}, "ms_kanji": {japanese.ShiftJIS, "shift_jis"}, "shift-jis": {japanese.ShiftJIS, "shift_jis"}, "shift_jis": {japanese.ShiftJIS, "shift_jis"}, "sjis": {japanese.ShiftJIS, "shift_jis"}, "windows-31j": {japanese.ShiftJIS, "shift_jis"}, "x-sjis": {japanese.ShiftJIS, "shift_jis"}, "cseuckr": {korean.EUCKR, "euc-kr"}, "csksc56011987": {korean.EUCKR, "euc-kr"}, "euc-kr": {korean.EUCKR, "euc-kr"}, "iso-ir-149": {korean.EUCKR, "euc-kr"}, "korean": {korean.EUCKR, "euc-kr"}, "ks_c_5601-1987": {korean.EUCKR, "euc-kr"}, "ks_c_5601-1989": {korean.EUCKR, "euc-kr"}, "ksc5601": {korean.EUCKR, "euc-kr"}, "ksc_5601": {korean.EUCKR, "euc-kr"}, "windows-949": {korean.EUCKR, "euc-kr"}, "csiso2022kr": {encoding.Replacement, "replacement"}, "iso-2022-kr": {encoding.Replacement, "replacement"}, "iso-2022-cn": {encoding.Replacement, "replacement"}, "iso-2022-cn-ext": {encoding.Replacement, "replacement"}, "utf-16be": {unicode.UTF16(unicode.BigEndian, unicode.IgnoreBOM), "utf-16be"}, "utf-16": {unicode.UTF16(unicode.LittleEndian, unicode.IgnoreBOM), "utf-16le"}, "utf-16le": {unicode.UTF16(unicode.LittleEndian, unicode.IgnoreBOM), "utf-16le"}, "x-user-defined": {charmap.XUserDefined, "x-user-defined"}, }