code: def _ConvertRowToUnicode(self, parser_mediator, row):
      
      for key, value in iter(row.items()):
        if isinstance(value, py2to3.UNICODE_TYPE):
          continue
  
        try:
          row[key] = value.decode(self._encoding)
        except UnicodeDecodeError:
          replaced_value = value.decode(self._encoding, errors='replace')
          parser_mediator.ProduceExtractionWarning(
              'error decoding DSV value: {0:s} as {1:s}, characters have been '
              'replaced in {2:s}'.format(key, self._encoding, replaced_value))
          row[key] = replaced_value
  
      return row
docs: Converts all strings in a DSV row dict to Unicode.
  
      Args:
        parser_mediator (ParserMediator): mediates interactions between parsers
            and other components, such as storage and dfvfs.
        row (dict[str, bytes]): a row from a DSV file, where the dictionary
            key contains the column name and the value a binary string.
  
      Returns:
        dict[str, str]: a row from the DSV file, where the dictionary key
            contains the column name and the value a Unicode string.