首頁 > 後端開發 > Golang > 主體

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

發布: 2019-12-12 09:44:48
原創
3365 人瀏覽過

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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板