def encode_data( self, value_IN, encoding_IN = None ):
        
        '''
        accepts data to be passed with request.  If data is a unicode string,
           encodes it to the encoding passed in.  If no encoding passed in, uses
           the default encoding (UTF-8).
        '''
        
        # return reference
        value_OUT = ""
        
        # declare variables
        is_data_unicode = False
        
        # see if data is a unicode object.
        is_data_unicode = StringHelper.is_unicode( value_IN )
        if ( is_data_unicode == True ):
        
            # yes, its unicode.  Encode it.  Got an encoding?
            if ( ( encoding_IN is not None ) and ( encoding_IN != "" ) ):
            
                # yes - use it.
                my_encoding = encoding_IN
                
            else:
            
                # no - get default.
                my_encoding = self.get_default_encoding()
                
            #-- END check for encoding. --#
            
            # Encode.
            value_OUT = StringHelper.encode_string( value_IN, my_encoding )
        
        else:
        
            # not unicode. Use as-is.
            value_OUT = value_IN
        
        #-- END check to see if data is unicode object --#

        return value_OUT