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