golang默認編碼為utf-8,但網(wǎng)頁中會有各種格式像常見的"gb2312","gbk"等。處理這些編碼的網(wǎng)頁時就會出現(xiàn)頭大的亂碼.golang沒有自帶的編解碼包,需要借助第三方包處理。
第三方包
code.google.com/p/mahonia
使用簡介
code貌似托管在谷歌的服務器上,國內(nèi)用戶可能要翻墻,我在github上fork了一個mahonia.
先判斷是否支持你想要的編碼格式,不支持的話,返回值為nil
func GetCharset(name string) *Charset
if mahonia.GetCharset(char) == nil { return nil, fmt.Errorf("%s charset not suported \n", char)}
創(chuàng)建特定編碼格式的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語言是一種新的語言,一種并發(fā)的、帶垃圾回收的、快速編譯的語言。它具有以下特點:
1.它可以在一臺計算機上用幾秒鐘的時間編譯一個大型的Go程序。
2.Go語言為軟件構造提供了一種模型,它使依賴分析更加容易,且避免了大部分C風格include文件與庫的開頭。
3.Go語言是靜態(tài)類型的語言,它的類型系統(tǒng)沒有層級。因此用戶不需要在定義類型之間的關系上花費時間,這樣感覺起來比典型的面向?qū)ο笳Z言更輕量級。
4.Go語言完全是垃圾回收型的語言,并為并發(fā)執(zhí)行與通信提供了基本的支持。
以上就是golang web開發(fā)亂碼的原因與解決方法的詳細內(nèi)容,更多請關注創(chuàng)新互聯(lián)成都網(wǎng)站設計公司其它相關文章!
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
新聞名稱:怎么解決golang的web開發(fā)亂碼問題-創(chuàng)新互聯(lián)
瀏覽路徑:http://aaarwkj.com/article40/coioho.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、網(wǎng)站維護、電子商務、網(wǎng)站營銷、定制網(wǎng)站、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容