Skip to content

Instantly share code, notes, and snippets.

@memememomo
Created October 22, 2014 03:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save memememomo/506ad86488ae6eca70ef to your computer and use it in GitHub Desktop.
Save memememomo/506ad86488ae6eca70ef to your computer and use it in GitHub Desktop.
Go言語で文字コード変換 ref: http://qiita.com/uchiko/items/1810ddacd23fd4d3c934
package main
import (
"code.google.com/p/go.text/encoding/japanese"
"code.google.com/p/go.text/transform"
"fmt"
"io/ioutil"
"strings"
)
// UTF-8 から ShiftJIS
func utf8_to_sjis(str string) (string, error) {
ret, err := ioutil.ReadAll(transform.NewReader(strings.NewReader(str), japanese.ShiftJIS.NewEncoder()))
if err != nil {
return "", err
}
return string(ret), err
}
// ShiftJIS から UTF-8
func sjis_to_utf8(str string) (string, error) {
ret, err := ioutil.ReadAll(transform.NewReader(strings.NewReader(str), japanese.ShiftJIS.NewDecoder()))
if err != nil {
return "", err
}
return string(ret), err
}
// UTF-8 から EUC-JP
func utf8_to_eucjp(str string) (string, error) {
ret, err := ioutil.ReadAll(transform.NewReader(strings.NewReader(str), japanese.EUCJP.NewEncoder()))
if err != nil {
return "", err
}
return string(ret), err
}
// EUC-JP から UTF-8
func eucjp_to_utf8(str string) (string, error) {
ret, err := ioutil.ReadAll(transform.NewReader(strings.NewReader(str), japanese.EUCJP.NewDecoder()))
if err != nil {
return "", err
}
return string(ret), err
}
func main() {
str := "テスト"
msg, err := utf8_to_sjis(str)
if err != nil {
panic(err)
}
msg, err = sjis_to_utf8(msg)
fmt.Println(msg)
}
go get code.google.com/p/go.text/encoding
go get code.google.com/p/go.text/encoding/japanese
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment