Maison >développement back-end >Tutoriel Python >Exemple d'implémentation Python pour une fonction d'interception contenant des chaînes chinoises

Exemple d'implémentation Python pour une fonction d'interception contenant des chaînes chinoises

黄舟
黄舟original
2017-09-23 11:05:002172parcourir

Cet article présente principalement l'implémentation par Python de la fonction d'interception pour les chaînes chinoises et analyse les compétences d'implémentation pertinentes des opérations d'interception de chaînes chinoises de Python pour l'encodage utf-8 et gb18030 sur la base d'exemples spécifiques. Les amis dans le besoin peuvent se référer à ce qui suit <.>

L'exemple de cet article décrit comment Python implémente la fonction d'interception pour les chaînes chinoises. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

Pour les chaînes contenant plusieurs octets, lors de la troncature, vous devez déterminer combien d'octets de caractères se trouvent au point de troncature, et les caractères multi-octets ne peuvent pas être séparé pour éviter la troncature. Après un code tronqué

Ce qui suit est l'implémentation de utf8 et gb18030 Vous pouvez d'abord transcoder, utiliser encoder, décoder ;

. Méthode 1 : Pour utf8 :


def subString(string,length):
  if length >= len(string):
        return string
  result = &#39;&#39;
  i = 0
  p = 0
  while True:
        ch = ord(string[i])
        #1111110x
        if ch >= 252:
            p = p + 6
        #111110xx
        elif ch >= 248:
            p = p + 5
        #11110xxx
        elif ch >= 240:
            p = p + 4
        #1110xxxx
        elif ch >= 224:
            p = p + 3
        #110xxxxx
        elif ch >= 192:
            p = p + 2
        else:
            p = p + 1
        if p >= length:
            break;
        else:
            i = p
  return string[0:i]

Méthode 2 : Encodage gb18030


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