mirror of
https://github.com/go-gitea/gitea.git
synced 2024-11-04 08:17:24 -05:00
40 lines
688 B
Go
40 lines
688 B
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"code.google.com/p/mahonia"
|
||
|
"flag"
|
||
|
"io"
|
||
|
"log"
|
||
|
"os"
|
||
|
)
|
||
|
|
||
|
// 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)
|
||
|
}
|