code: def encode(text, orig_coding):
      
      if orig_coding == 'utf-8-bom':
          return BOM_UTF8 + text.encode("utf-8"), 'utf-8-bom'
  
      # Try declared coding spec
      coding = get_coding(text)
      if coding:
          try:
              return text.encode(coding), coding
          except (UnicodeError, LookupError):
              raise RuntimeError("Incorrect encoding (%s)" % coding)
      if (orig_coding and orig_coding.endswith('-default') or
         orig_coding.endswith('-guessed')):
          coding = orig_coding.replace("-default", "")
          coding = orig_coding.replace("-guessed", "")
          try:
              return text.encode(coding), coding
          except (UnicodeError, LookupError):
              pass
  
      # Try saving as ASCII
      try:
          return text.encode('ascii'), 'ascii'
      except UnicodeError:
          pass
  
      # Save as UTF-8 without BOM
      return text.encode('utf-8'), 'utf-8'
docs: Function to encode a text.
      @param text text to encode (string)
      @param orig_coding type of the original coding (string)
      @return encoded text and encoding