Shift_JIS to UTF-8 in Go
Go で Shift_JIS を UTF-8 に変換.
Go で HTML の scraper を書いていると、 日本語の HTML の scraper に恒例の Shift_JIS の conversion が必要になったのでメモ.
Script
string -> Reader -> (decoded) Reader -> []byte -> string
と変換していく.
package main
import (
"golang.org/x/text/encoding/japanese"
"golang.org/x/text/transform"
"io/ioutil"
"strings"
)
func shiftJIS2UTF8(str string) (string, error) {
strReader := strings.NewReader(str)
decodedReader := transform.NewReader(strReader, japanese.ShiftJIS.NewDecoder())
decoded, err := ioutil.ReadAll(decodedReader)
if err != nil {
return "", err
}
return string(decoded), err
}