handle_code.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. package mokuai
  2. import (
  3. "bytes"
  4. "crypto/md5"
  5. "encoding/hex"
  6. "golang.org/x/text/encoding/simplifiedchinese"
  7. "golang.org/x/text/transform"
  8. "io/ioutil"
  9. )
  10. func Code_GetMd5(str string) string {
  11. h := md5.New()
  12. h.Write([]byte(str))
  13. return hex.EncodeToString(h.Sum(nil))
  14. }
  15. func Code_GbkToUtf8(s string) (rs string) {
  16. reader := transform.NewReader(bytes.NewReader([]byte(s)), simplifiedchinese.GBK.NewDecoder())
  17. d, e := ioutil.ReadAll(reader)
  18. if e != nil {
  19. return ""
  20. }
  21. return string(d)
  22. }
  23. func Code_GbkToUtf8_byte(s []byte) ([]byte, error) {
  24. reader := transform.NewReader(bytes.NewReader(s), simplifiedchinese.GBK.NewDecoder())
  25. d, e := ioutil.ReadAll(reader)
  26. if e != nil {
  27. return nil, e
  28. }
  29. return d, nil
  30. }
  31. // Utf8 转 GBK (文本)
  32. func Code_Utf8ToGbk(s string) string {
  33. reader := transform.NewReader(bytes.NewReader([]byte(s)), simplifiedchinese.GBK.NewEncoder())
  34. d, e := ioutil.ReadAll(reader)
  35. if e != nil {
  36. return ""
  37. }
  38. return string(d)
  39. }
  40. // Utf8 转 GBK (byte)
  41. func Code_Utf8ToGbk_byte(s []byte) ([]byte, error) {
  42. reader := transform.NewReader(bytes.NewReader(s), simplifiedchinese.GBK.NewEncoder())
  43. d, e := ioutil.ReadAll(reader)
  44. if e != nil {
  45. return nil, e
  46. }
  47. return d, nil
  48. }