Maison >développement back-end >Golang >Causes et solutions au code tronqué dans le développement Web Golang

Causes et solutions au code tronqué dans le développement Web Golang

尚
original
2019-12-12 09:44:483391parcourir

Causes et solutions au code tronqué dans le développement Web Golang

L'encodage par défaut de golang est utf-8, mais il existe différents formats dans les pages Web tels que "gb2312", "gbk", etc. Lors du traitement de ces pages Web codées, de gros caractères tronqués apparaîtront. Golang ne dispose pas de son propre package d'encodage et de décodage, il doit donc être traité à l'aide d'un package tiers. Recommandé : Tutoriel Golang

Package tiers

code.google.com/p/mahonia

Introduction à l'utilisation

code on dirait qu'il est hébergé sur le serveur de Google. Les utilisateurs nationaux devront peut-être contourner le mur. J'ai créé un mahonia sur github

Déterminez d'abord si le format d'encodage souhaité est pris en charge. S'il n'est pas pris en charge, le retour. la valeur est nulle

func GetCharset(name string) *Charset

if mahonia.GetCharset(char) == nil {

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

Créer un décodeur dans un format d'encodage spécifique

func NewDecoder(name string) Decoder

dec := mahonia.NewDecoder(char)

puis décoder directement : couramment utilisé. Il existe un décodage directement à partir d'une chaîne et un décodage à partir d'un flux io

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

Le flux io est utilisé ici, car une boîte à outils similaire à jquery est également utilisée ci-dessous pour faciliter les déclarations cohérentes

rd := dec.NewReader(resp.Body)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn