go言語で何か作りたいなと思いgoqueryとおなじよなmyqueryというライブラリを作ろうとしたとき、ネットから得たhtmlをファイルに保存しようとしたら文字化けが起こってしまいました。文字コード変換サイトでこの文字化けした文字をもどそうとした結果iso-8859-1のutf-8で正常の文字になりました。
go言語
1package myquery 2 3import ( 4 "io/ioutil" 5 "log" 6 "net/http" 7 "os" 8 9) 10 11type documentQuery struct { 12 html string 13} 14 15func NewDocument(url string) *documentQuery { 16 res, err := http.Get(url) 17 if err != nil { 18 log.Fatal(err) 19 } 20 document, err := ioutil.ReadAll(res.Body) 21 if err != nil { 22 log.Fatal(err) 23 } 24 var total string 25 for _, j := range document { 26 if string(j) == ">" { 27 total += string(j) 28 //total+="\n" 29 continue 30 } 31 total += string(j) 32 } 33 34 defer res.Body.Close() 35 return &documentQuery{ 36 html: total, 37 } 38} 39func (d *documentQuery) search() bool { 40 if d.html != "" { 41 return true 42 } 43 log.Fatal("なにも入っていませんん") 44 return false 45} 46 47func (d *documentQuery) Save(name string) { 48 if d.search() == true { 49 file, err := os.Create(name) 50 if err != nil { 51 log.Fatal(err) 52 } 53 54 file.WriteString(d.html) 55 } 56}
これをgoのライブラリで文字化けせずにファイルに保存する方法を教えてください。
パース時なのか保存時なのか表示なのか。どの段階で文字コードミスマッチがあったのかが不明なのでどこにミスマッチがあったのか切り分けをお願いします。コード上はなにも変換を行わずパススルーの状態に見えます。
切り分けが難しいのなら具体的なサイトURLと保存したファイルを追記してください。
回答1件
あなたの回答
tips
プレビュー