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  }