func ExampleUTF8Validator() { for i := 0; i < 2; i++ { var transformer transform.Transformer transformer = unicode.UTF16(unicode.BigEndian, unicode.IgnoreBOM).NewEncoder() if i == 1 { transformer = transform.Chain(encoding.UTF8Validator, transformer) } dst := make([]byte, 256) src := []byte("abc\xffxyz") // src is invalid UTF-8. nDst, nSrc, err := transformer.Transform(dst, src, true) fmt.Printf("i=%d: produced %q, consumed %q, error %v\n", i, dst[:nDst], src[:nSrc], err) } // Output: // i=0: produced "\x00a\x00b\x00c\xff\xfd\x00x\x00y\x00z", consumed "abc\xffxyz", error <nil> // i=1: produced "\x00a\x00b\x00c", consumed "abc", error encoding: invalid UTF-8 }
"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"}, }
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, gbk: simplifiedchinese.GBK, gb18030: simplifiedchinese.GB18030, 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, }