您好,登錄后才能下訂單哦!
golang默認(rèn)編碼為utf-8,但網(wǎng)頁(yè)中會(huì)有各種格式像常見的"gb2312","gbk"等。處理這些編碼的網(wǎng)頁(yè)時(shí)就會(huì)出現(xiàn)頭大的亂碼.golang沒(méi)有自帶的編解碼包,需要借助第三方包處理。
第三方包
code.google.com/p/mahonia
使用簡(jiǎn)介
code貌似托管在谷歌的服務(wù)器上,國(guó)內(nèi)用戶可能要翻墻,我在github上fork了一個(gè)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流,因?yàn)橄旅孢€用到類似于jquery的一個(gè)工具包,便于連貫陳述
rd := dec.NewReader(resp.Body)
擴(kuò)展資料:
Go語(yǔ)言是一種新的語(yǔ)言,一種并發(fā)的、帶垃圾回收的、快速編譯的語(yǔ)言。它具有以下特點(diǎn):
1.它可以在一臺(tái)計(jì)算機(jī)上用幾秒鐘的時(shí)間編譯一個(gè)大型的Go程序。
2.Go語(yǔ)言為軟件構(gòu)造提供了一種模型,它使依賴分析更加容易,且避免了大部分C風(fēng)格include文件與庫(kù)的開頭。
3.Go語(yǔ)言是靜態(tài)類型的語(yǔ)言,它的類型系統(tǒng)沒(méi)有層級(jí)。因此用戶不需要在定義類型之間的關(guān)系上花費(fèi)時(shí)間,這樣感覺起來(lái)比典型的面向?qū)ο笳Z(yǔ)言更輕量級(jí)。
4.Go語(yǔ)言完全是垃圾回收型的語(yǔ)言,并為并發(fā)執(zhí)行與通信提供了基本的支持。
以上就是golang web開發(fā)亂碼的原因與解決方法的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注億速云其它相關(guān)文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。