golang编写编码转换小工具

最近下载一些txt文本文件,由于这些文件都是在windows下生成的,所以默认编码在mac系统中并不识别,打开文件全部为乱码。一些编辑器工具也不支持相关编码。为了方便使用,整了一个gbk编码转换为utf8编码的小工具,方便日常应用。

使用golang开发很快,编码转换用现成的iconv-go库即可。源代码如下:

package main

import (
	"fmt"
	iconv "github.com/djimenez/iconv-go"
	"io/ioutil"
	"os"
)

func main() {

	if len(os.Args) == 1 {
		fmt.Println("error: no input file")
		return
	}

	input, err := ioutil.ReadFile(os.Args[1])
	if err != nil {
		fmt.Println(err)
		return
	}

	out, err := iconv.ConvertString(string(input), "gbk", "utf-8")
	if err != nil {
		fmt.Println(err)
		return
	}

	if len(os.Args) == 3 {
		ioutil.WriteFile(os.Args[2], []byte(out), 0600)
		return
	}
	ioutil.WriteFile(os.Args[1]+".utf8", []byte(out), 0600)
}

编译后,放到你自己的bin目录里即可。