From 37c350f19f2f3f165684e9954ad20485375434ae Mon Sep 17 00:00:00 2001 From: Wim Date: Wed, 30 Aug 2017 20:59:54 +0200 Subject: [PATCH] Convert utf-8 back to charset (irc). #247 --- bridge/irc/irc.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/bridge/irc/irc.go b/bridge/irc/irc.go index aecd85fd..d62fe31a 100644 --- a/bridge/irc/irc.go +++ b/bridge/irc/irc.go @@ -1,6 +1,7 @@ package birc import ( + "bytes" "crypto/tls" "fmt" "github.com/42wim/go-ircevent" @@ -132,6 +133,19 @@ func (b *Birc) Send(msg config.Message) (string, error) { if strings.HasPrefix(msg.Text, "!") { b.Command(&msg) } + + if b.Config.Charset != "" { + buf := new(bytes.Buffer) + w, err := charset.NewWriter(b.Config.Charset, buf) + if err != nil { + flog.Errorf("charset from utf-8 conversion failed: %s", err) + return "", err + } + fmt.Fprintf(w, msg.Text) + w.Close() + msg.Text = buf.String() + } + for _, text := range strings.Split(msg.Text, "\n") { if len(text) > b.Config.MessageLength { text = text[:b.Config.MessageLength] + " "