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  }