golang 字符串重新编码

//byte decode
/**
* function  对字符串重新编码
*  params   text:需要编码的字符串
*        encodeStr:编码类型;GB18030 GBK HZGB2312
*/
func UTF8ReDecode(text string, encodeStr string) (string, error) {
  var reader io.Reader
  switch encodeStr {
  case "GB18030":
      reader = transform.NewReader(bytes.NewReader([]byte(text)), simplifiedchinese.GB18030.NewDecoder())
  case "GBK":
      reader = transform.NewReader(bytes.NewReader([]byte(text)), simplifiedchinese.GBK.NewDecoder())
  case "HZGB2312":
      reader = transform.NewReader(bytes.NewReader([]byte(text)), simplifiedchinese.HZGB2312.NewDecoder())
  default:
      reader = transform.NewReader(bytes.NewReader([]byte(text)), simplifiedchinese.GB18030.NewDecoder())
  }
  d, err := ioutil.ReadAll(reader)
  if err != nil {
      return "", err
  }
  return string(d), nil
}