class_docstr: Checker used for string fields.
  
  Always returns a unicode value, even if the input is of type str.
code: def CheckValue(self, proposed_value):
      if not isinstance(proposed_value, (bytes, six.text_type)):
          message = "%.1024r has type %s, but expected one of: %s" % (
              proposed_value,
              type(proposed_value),
              (bytes, six.text_type),
          )
          raise TypeError(message)
  
      # If the value is of type 'bytes' make sure that it is valid UTF-8 data.
      if isinstance(proposed_value, bytes):
          try:
              proposed_value = proposed_value.decode("utf-8")
          except UnicodeDecodeError:
              raise ValueError(
                  "%.1024r has type bytes, but isn't valid UTF-8 "
                  "encoding. Non-UTF-8 strings must be converted to "
                  "unicode objects before being added."
                  % (proposed_value)
              )
      return proposed_value
  
imports: import numbers
  import six
  from google.protobuf.internal import api_implementation
  from google.protobuf.internal import decoder
  from google.protobuf.internal import encoder
  from google.protobuf.internal import wire_format
  from google.protobuf import descriptor
label_desc: Use image node_id 1 for calling the UnicodeValueChecker obj's underlying member method code with example usage: obj.CheckValue(proposed_value) and returns: proposed_value