docstr: Encode a message header into an RFC-compliant format.
  
  There are many issues involved in converting a given string for use in
  an email header.  Only certain character sets are readable in most
  email clients, and as header strings can only contain a subset of
  7-bit ASCII, care must be taken to properly convert and encode (with
  Base64 or quoted-printable) header strings.  In addition, there is a
  75-character length limit on any given encoded header field, so
  line-wrapping must be performed, even with double-byte character sets.
  
  This method will do its best to convert the string to the correct
  character set used in email, and encode and line wrap it safely with
  the appropriate scheme for that character set.
  
  If the given charset is not known or an error occurs during
  conversion, this function will return the header untouched.
  
  Optional splitchars is a string containing characters to split long
  ASCII lines on, in rough support of RFC 2822's `highest level
  syntactic breaks'.  This doesn't affect RFC 2047 encoded lines.
docstr_tok: ["Encode","a","message","header","into","an","RFC-compliant","format",".","There","are","many","issues","involved","in","converting","a","given","string","for","use","in","an","email","header",".","Only","certain","character","sets","are","readable","in","most","email","clients",",","and","as","header","strings","can","only","contain","a","subset","of","7-bit","ASCII",",","care","must","be","taken","to","properly","convert","and","encode","(","with","Base64","or","quoted-printable",")","header","strings",".","In","addition",",","there","is","a","75-character","length","limit","on","any","given","encoded","header","field",",","so","line-wrapping","must","be","performed",",","even","with","double-byte","character","sets",".","This","method","will","do","its","best","to","convert","the","string","to","the","correct","character","set","used","in","email",",","and","encode","and","line","wrap","it","safely","with","the","appropriate","scheme","for","that","character","set",".","If","the","given","charset","is","not","known","or","an","error","occurs","during","conversion",",","this","function","will","return","the","header","untouched",".","Optional","splitchars","is","a","string","containing","characters","to","split","long","ASCII","lines","on",",","in","rough","support","of","RFC","2822","'s","`","highest","level","syntactic","breaks","'",".","This","does","n't","affect","RFC","2047","encoded","lines","."]
code: def encode(self, splitchars=";, "):
      """Encode a message header into an RFC-compliant format.
  
      There are many issues involved in converting a given string for use in
      an email header.  Only certain character sets are readable in most
      email clients, and as header strings can only contain a subset of
      7-bit ASCII, care must be taken to properly convert and encode (with
      Base64 or quoted-printable) header strings.  In addition, there is a
      75-character length limit on any given encoded header field, so
      line-wrapping must be performed, even with double-byte character sets.
  
      This method will do its best to convert the string to the correct
      character set used in email, and encode and line wrap it safely with
      the appropriate scheme for that character set.
  
      If the given charset is not known or an error occurs during
      conversion, this function will return the header untouched.
  
      Optional splitchars is a string containing characters to split long
      ASCII lines on, in rough support of RFC 2822's `highest level
      syntactic breaks'.  This doesn't affect RFC 2047 encoded lines.
      """
      newchunks = []
      maxlinelen = self._firstlinelen
      lastlen = 0
      for s, charset in self._chunks:
          # The first bit of the next chunk should be just long enough to
          # fill the next line.  Don't forget the space separating the
          # encoded words.
          targetlen = maxlinelen - lastlen - 1
          if targetlen < charset.encoded_header_len(""):
              # Stick it on the next line
              targetlen = maxlinelen
          newchunks += self._split(s, charset, targetlen, splitchars)
          lastchunk, lastcharset = newchunks[-1]
          lastlen = lastcharset.encoded_header_len(lastchunk)
      value = self._encode_chunks(newchunks, maxlinelen)
      if _embeded_header.search(value):
          raise HeaderParseError(
              "header value appears to contain "
              "an embedded header: {!r}".format(value)
          )
      return value
  
imports: import re
  import binascii
  import email.quoprimime
  import email.base64mime
  from email.errors import HeaderParseError
  from email.charset import Charset
label_desc: Use image node_id 10 for calling the Header obj's underlying member method code with example usage: obj.encode(splitchars) and returns: value