Go言語でShiftJISのファイルを読む
go.textパッケージを使う
$ go get code.google.com/p/go.text/encoding $ go get code.google.com/p/go.text/encoding/japanese
使い方を調べるためにsjisのファイルをeucjpに変換してコピーする処理を書いてみた
package main import ( "code.google.com/p/go.text/encoding/japanese" "code.google.com/p/go.text/transform" "flag" "io" "os" ) func main() { flag.Parse() // 読み込むファイル read_file, _ := os.OpenFile(flag.Arg(0), os.O_RDONLY, 0600) defer read_file.Close() // 書き込むファイル write_file, _ := os.OpenFile(flag.Arg(1), os.O_WRONLY|os.O_CREATE, 0600) defer write_file.Close() reader := transform.NewReader(read_file, japanese.ShiftJIS.NewDecoder()) writer := transform.NewWriter(write_file, japanese.EUCJP.NewEncoder()) io.Copy(writer, reader) }