mirror of https://github.com/gogits/gogs.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
702 B
40 lines
702 B
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) |
|
}
|
|
|