feat: handle foreign encodings

This commit is contained in:
James Houlahan
2020-08-05 17:00:06 +02:00
parent f4374a02da
commit ea01c155da
11 changed files with 194 additions and 78 deletions

View File

@ -37,7 +37,7 @@ import (
var wordDec = &mime.WordDecoder{
CharsetReader: func(charset string, input io.Reader) (io.Reader, error) {
dec, err := selectDecoder(charset)
dec, err := SelectDecoder(charset)
if err != nil {
return nil, err
}
@ -166,7 +166,7 @@ func getEncoding(charset string) (enc encoding.Encoding, err error) {
return
}
func selectDecoder(charset string) (decoder *encoding.Decoder, err error) {
func SelectDecoder(charset string) (decoder *encoding.Decoder, err error) {
var enc encoding.Encoding
lcharset := strings.Trim(strings.ToLower(charset), " \t\r\n")
switch lcharset {
@ -211,7 +211,7 @@ func DecodeCharset(original []byte, contentType string) ([]byte, error) {
}
if charset, ok := params["charset"]; ok {
decoder, err := selectDecoder(charset)
decoder, err := SelectDecoder(charset)
if err != nil {
return original, errors.Wrap(err, "unknown charset was specified")
}