func CharsetReader(label string, input io.Reader) (io.Reader, error) {
	buffer, _ := io.ReadAll(input)
	r := bytes.NewReader(buffer)
	if utf8.Valid(buffer) {
		return r, nil
	}
	return charset.NewReaderLabel(label, r)
}
CharsetReader is used when the XML encoding is specified for the input document.

The document is converted in UTF-8 only if a different encoding is specified
and the document is not already UTF-8.

Several edge cases could exists:

- Feeds with encoding specified only in Content-Type header and not in XML document
- Feeds with encoding specified in both places
- Feeds with encoding specified only in XML document and not in HTTP header
- Feeds with wrong encoding defined and already in UTF-8
package encoding  
import (
	"bytes"
	"io"
	"unicode/utf8"
	"golang.org/x/net/html/charset"
)