Golang 문자 인코딩
3545 단어 golang
go get code.google.com/p/go.text/encoding
go get code.google.com/p/go.text/transform
두 개의 디코딩 함수
import (
"bytes"
"code.google.com/p/go.text/encoding/simplifiedchinese"
"code.google.com/p/go.text/transform"
"io/ioutil"
)
func Decode(s []byte) ([]byte, error) {
I := bytes.NewReader(s)
O := transform.NewReader(I, simplifiedchinese.GBK.NewDecoder())
d, e := ioutil.ReadAll(O)
if e != nil {
return nil, e
}
return d, nil
}
func Encode(s []byte) ([]byte, error) {
I := bytes.NewReader(s)
O := transform.NewReader(I, simplifiedchinese.GBK.NewEncoder())
d, e := ioutil.ReadAll(O)
if e != nil {
return nil, e
}
return d, nil
}
다음은 테스트 코드입니다.
func main() {
log.SetFlags(log.LstdFlags | log.Lshortfile)
resp, err := http.Get("http://data.earthquake.cn/datashare/globeEarthquake_csn.html")
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
input, err := ioutil.ReadAll(resp.Body)
out := make([]byte, len(input))
out = out[:]
out, _ = Decode(input)
ioutil.WriteFile("out.html", out, 0644)
//func ReadFile(filename string) ([]byte, error)
input, err = ioutil.ReadFile("out.html")
out, _ = Encode(input)
ioutil.WriteFile("out_gb.html", out, 0644)
}
그리고 다음은 iconvc 라이브러리에 의존하는 소스 문자 집합 변환 라이브러리입니다.
1. iconv-go, cgo를 통해 iconv 라이브러리 봉인;2. qiniuiconv, 마찬가지로 cgo를 통해 iconv 라이브러리를 봉인한다.3.go-charset, UTF-8을 다른 문자 집합 (비iconv 라이브러리) 으로 변환하는 것을 지원하는 동시에 iconv를 봉인하여 더 많은 문자 집합의 변환을 제공합니다
이것들은 linux에서 사용하면 괜찮아요. 윈도우즈에 도착하면mingw를 설치해야 해요. 그리고 32비트와 64비트의 차이가 있어서 귀찮아서 개인적으로 싫어해요.
또 하나의 Mahonia-a character-set conversion library for Go가 있지만 이 라이브러리는 유지보수를 중단했습니다.
만약 특별한 요구가 없다면, 개인은 코드를 사용하는 것을 건의합니다.google.com/p/go.text/encoding
이 라이브러리는 hg로 설치해야 합니다.python 2.7과Mercurial을 먼저 설치하는 것을 기억하십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
set containerThere is no built-in set container in Go How to implement Set struct{} => type struct{}{} => 0bytes How to create set :=...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.