def euc_to_unicode(hexstr):
    """
    Return EUC-CN (GB2312) hex to a Python unicode.

    Parameters
    ----------
    hexstr : bytes

    Returns
    -------
    unicode :
        Python unicode  e.g. ``u'\\u4e00'`` / '一'.

    Examples
    --------

    >>> u'\u4e00'.encode('gb2312').decode('utf-8')
    u'\u04bb'

    >>> (b'\\x' + b'd2' + b'\\x' + b'bb').replace('\\x', '') \\
    ... .decode('hex').decode('utf-8')
    u'\u04bb'

    Note: bytes don't have a ``.replace``:

    >>> gb_enc = gb_enc.replace('\\x', '').decode('hex')
    >>> gb_enc.decode('string_escape')  # Won't work with Python 3.x.
    """
    hi = hexstr[0:2]
    lo = hexstr[2:4]
    # hi and lo are only 2 characters long, no risk with eval-ing them

    gb_enc = b'\\x' + hi + b'\\x' + lo
    assert isinstance(gb_enc, bytes)

    # Requires coercing back to text_type in 2.7
    gb_enc = gb_enc.decode('unicode_escape')

    gb_enc = gb_enc.encode('latin1')

    gb_enc = gb_enc.decode('gb2312')

    assert isinstance(gb_enc, text_type)
    return gb_enc