<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _p2_unicode_reader(unicode_csv_data, dialect=csv.excel, **kwargs):
 """ Encode Unicode as UTF-8 and parse as CSV. This is needed since Python 2's `csv` doesn't do Unicode. Kudos: https://docs.python.org/2/library/csv.html#examples :param unicode_csv_data: The Unicode stream to parse. :param dialect: The CSV dialect to use. :param kwargs: Any other parameters to pass to csv.reader. :returns: An iterator """

    # Encode temporarily as UTF-8:
    utf8_csv_data = _utf_8_encoder(unicode_csv_data)

    # Now we can parse!
    csv_reader = csv.reader(utf8_csv_data, dialect=dialect, **kwargs)

    # Decode UTF-8 back to Unicode, cell by cell:
    return ([unicode(cell, 'utf-8') for cell in row] for row in csv_reader)