def unicodify(self, s):
        u"""
        
        Make sure, whatever ``s`` is, that there is a value Unicode string answered. If ``s`` is not a
        string then use ``str(s)`` to convert to a string first. This will make database records convert to a
        string of their id, instead of showing the record ``repr`` result. <em>Note that it might be that
        ``str`` will cause an error on the content of the object such as a list.</em>. ``None`` is
        replaced by an empty Unicode string.
        
        """
        if s is None:
            return u''
        if isinstance(s, unicode):
            return s
        if not isinstance(s, basestring):
            s = str(s)
        try:
            return unicode(s, 'utf-8')
        except __HOLE__:
            return s

        raise ValueError("can't handle string s")
dataset/ETHPy150Open petrvanblokland/Xierpa3/xierpa3/toolbox/parsers/etreexmlparser.py/UnbasedPathResolver.unicodify