gitee.com/quant1x/gox@v1.7.6/text/encoding/mahoniconv/mahoniconv.go (about) 1 package main 2 3 import ( 4 "flag" 5 "gitee.com/quant1x/gox/text/encoding" 6 "io" 7 "log" 8 "os" 9 ) 10 11 // An iconv workalike using mahonia. 12 var from = flag.String("f", "utf-8", "source character set") 13 var to = flag.String("t", "utf-8", "destination character set") 14 15 func main() { 16 flag.Parse() 17 18 var r io.Reader = os.Stdin 19 var w io.Writer = os.Stdout 20 21 if *from != "utf-8" { 22 decode := encoding.NewDecoder(*from) 23 if decode == nil { 24 log.Fatalf("Could not create decoder for %s", *from) 25 } 26 r = decode.NewReader(r) 27 } 28 29 if *to != "utf-8" { 30 encode := encoding.NewEncoder(*to) 31 if encode == nil { 32 log.Fatalf("Could not create decoder for %s", *to) 33 } 34 w = encode.NewWriter(w) 35 } 36 37 io.Copy(w, r) 38 }