golang默认编码为utf-8,但网页中会有各种格式像常见的"gb2312","gbk"等。处理这些编码的网页时就会出现头大的乱码.golang没有自带的编解码包,需要借助第三方包处理。
成都创新互联-专业网站定制、快速模板网站建设、高性价比泸州网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式泸州网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖泸州地区。费用合理售后完善,10余年实体公司更值得信赖。第三方包
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开发乱码的原因与解决方法的详细内容,更多请关注创新互联成都网站设计公司其它相关文章!
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
售后响应及时
7×24小时客服热线数据备份
更安全、更高效、更稳定价格公道精准
项目经理精准报价不弄虚作假合作无风险
重合同讲信誉,无效全额退款