首頁  >  文章  >  後端開發  >  golang web開發亂碼的原因與解決方法

golang web開發亂碼的原因與解決方法

尚
原創
2019-12-12 09:44:483360瀏覽

golang web開發亂碼的原因與解決方法

golang預設編碼為utf-8,但網頁中會有各種格式像常見的"gb2312","gbk"等。處理這些編碼的網頁時就會出現頭大的亂碼.golang沒有自備的編解碼包,需要藉助第三方包處理。推薦:golang教學

第三方套件

code.google.com/p/mahonia

使用簡介

code外觀託管在Google的伺服器上,國內用戶可能要翻牆,我在github上fork了一個mahonia.

先判斷是否支援你想要的編碼格式,不支援的話,回傳值為nil

func GetCharset(name string) *Charset

if mahonia.GetCharset(char) == nil {

    return nil, fmt.Errorf("%s charset not suported \n", char)}

建立特定編碼格式的decoder

func NewDecoder(name string) Decoder

dec := mahonia.NewDecoder(char)

接著直接解碼:常用的有直接從字串解碼及從io流解碼

func (d Decoder) ConvertString(s string) string
func (d Decoder) NewReader(rd io.Reader) *Reader

這裡用的是io流,因為下面還用到類似jquery的一個工具包,方便連貫陳述

rd := dec.NewReader(resp.Body)

以上是golang web開發亂碼的原因與解決方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn