42wim/matterbridge

View on GitHub
bridge/irc/charset.go

Summary

Maintainability
A
0 mins
Test Coverage
package birc

import (
    "golang.org/x/text/encoding"
    "golang.org/x/text/encoding/japanese"
    "golang.org/x/text/encoding/korean"
    "golang.org/x/text/encoding/simplifiedchinese"
    "golang.org/x/text/encoding/traditionalchinese"
    "golang.org/x/text/encoding/unicode"
)

var encoders = map[string]encoding.Encoding{
    "utf-8":       unicode.UTF8,
    "iso-2022-jp": japanese.ISO2022JP,
    "big5":        traditionalchinese.Big5,
    "gbk":         simplifiedchinese.GBK,
    "euc-kr":      korean.EUCKR,
    "gb2312":      simplifiedchinese.HZGB2312,
    "shift-jis":   japanese.ShiftJIS,
    "euc-jp":      japanese.EUCJP,
    "gb18030":     simplifiedchinese.GB18030,
}

func toUTF8(from string, input string) string {
    enc, ok := encoders[from]
    if !ok {
        return input
    }

    res, _ := enc.NewDecoder().String(input)
    return res
}