golang web开发乱码的原因与解决方法


本文摘自php中文网,作者尚,侵删。

golang默认编码为utf-8,但网页中会有各种格式像常见的"gb2312","gbk"等。处理这些编码的网页时就会出现头大的乱码.golang没有自带的编解码包,需要借助第三方包处理。推荐:golang教程

第三方包

code.google.com/p/mahonia

使用简介

code貌似托管在谷歌的服务器上,国内用户可能要翻墙,我在github上fork了一个mahonia.

先判断是否支持你想要的编码格式,不支持的话,返回值为nil

func GetCharset(name string) *Charset

1

2

3

if mahonia.GetCharset(char) == nil {

 

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

创建特定编码格式的decoder

func NewDecoder(name string) Decoder

1

dec := mahonia.NewDecoder(char)

接着直接解码:常用的有直接从字符串解码及从io流解码

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

这里用的是io流,因为下面还用到类似于jquery的一个工具包,便于连贯陈述

1

rd := dec.NewReader(resp.Body)

以上就是golang web开发乱码的原因与解决方法的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

教你使用golang和lua实现一个值班机器人

golang接口可以嵌套吗

如何实现一个更全面的golang版本的布谷鸟过滤器

golang reflect.select 用法

golang usr/local/go/pkg/tool/linux_amd64/link: fingerprint mismatch 解决办法

【gocn酷go推荐】go 类型转换神器 cast库

手撸golang 架构设计原则 合成复用原则

手撸golang 行为型设计模式 委派模式

go1.7里面的bce(跳跃检测排除)(译文)

golang 适合做web开发吗

更多相关阅读请进入《golang》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...