mirror of
				https://codeberg.org/forgejo/forgejo.git
				synced 2025-10-31 14:31:02 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			40 lines
		
	
	
	
		
			702 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
	
		
			702 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package main
 | |
| 
 | |
| import (
 | |
| 	"flag"
 | |
| 	"io"
 | |
| 	"log"
 | |
| 	"os"
 | |
| 
 | |
| 	"github.com/gogits/gogs/modules/mahonia"
 | |
| )
 | |
| 
 | |
| // An iconv workalike using mahonia.
 | |
| 
 | |
| var from = flag.String("f", "utf-8", "source character set")
 | |
| var to = flag.String("t", "utf-8", "destination character set")
 | |
| 
 | |
| func main() {
 | |
| 	flag.Parse()
 | |
| 
 | |
| 	var r io.Reader = os.Stdin
 | |
| 	var w io.Writer = os.Stdout
 | |
| 
 | |
| 	if *from != "utf-8" {
 | |
| 		decode := mahonia.NewDecoder(*from)
 | |
| 		if decode == nil {
 | |
| 			log.Fatalf("Could not create decoder for %s", *from)
 | |
| 		}
 | |
| 		r = decode.NewReader(r)
 | |
| 	}
 | |
| 
 | |
| 	if *to != "utf-8" {
 | |
| 		encode := mahonia.NewEncoder(*to)
 | |
| 		if encode == nil {
 | |
| 			log.Fatalf("Could not create decoder for %s", *to)
 | |
| 		}
 | |
| 		w = encode.NewWriter(w)
 | |
| 	}
 | |
| 
 | |
| 	io.Copy(w, r)
 | |
| }
 |