您好,登錄后才能下訂單哦!
golang默認編碼為utf-8,但網頁中會有各種格式像常見的"gb2312","gbk"等。處理這些編碼的網頁時就會出現頭大的亂碼.golang沒有自帶的編解碼包,需要借助第三方包處理。
第三方包
code.google.com/p/mahonia
使用簡介
code貌似托管在谷歌的服務器上,國內用戶可能要翻墻,我在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)
擴展資料:
Go語言是一種新的語言,一種并發的、帶垃圾回收的、快速編譯的語言。它具有以下特點:
1.它可以在一臺計算機上用幾秒鐘的時間編譯一個大型的Go程序。
2.Go語言為軟件構造提供了一種模型,它使依賴分析更加容易,且避免了大部分C風格include文件與庫的開頭。
3.Go語言是靜態類型的語言,它的類型系統沒有層級。因此用戶不需要在定義類型之間的關系上花費時間,這樣感覺起來比典型的面向對象語言更輕量級。
4.Go語言完全是垃圾回收型的語言,并為并發執行與通信提供了基本的支持。
以上就是golang web開發亂碼的原因與解決方法的詳細內容,更多請關注億速云其它相關文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。