Tag Archives: robotframework

[Solved] Unicode decode error in the background when the robot framework is running

Error reported in win10 environment:

Traceback (most recent call last):

File “C:\Python27\lib\site-packages\robotide\contrib\testrunner\testrunnerplugin.py”, line 370, in OnTimer

self._test_runner.get_output_and_errors(self.get_current_profile())

File “C:\Python27\lib\site-packages\robotide\contrib\testrunner\testrunner.py”, line 250, in get_output_and_errors

stdout, stderr, returncode = self._process.get_output(), \

File “C:\Python27\lib\site-packages\robotide\contrib\testrunner\testrunner.py”, line 305, in get_output

return self._output_stream.pop()

File “C:\Python27\lib\site-packages\robotide\contrib\testrunner\testrunner.py”, line 400, in pop

return result.decode(‘UTF-8’)

File “C:\Python27\lib\encodings\utf_8.py”, line 16, in decode

return codecs.utf_8_decode(input, errors, True)

UnicodeDecodeError: ‘utf8’ codec can’t decode byte 0xb2 in position 5: invalid start byte

Traceback (most recent call last):

 

File “C:\Python27\lib\site-packages\robotide\contrib\testrunner\testrunnerplugin.py”, line 370, in OnTimer

self._test_runner.get_output_and_errors(self.get_current_profile())

File “C:\Python27\lib\site-packages\robotide\contrib\testrunner\testrunner.py”, line 250, in get_output_and_errors

stdout, stderr, returncode = self._process.get_output(), \

File “C:\Python27\lib\site-packages\robotide\contrib\testrunner\testrunner.py”, line 305, in get_output

return self._output_stream.pop()

File “C:\Python27\lib\site-packages\robotide\contrib\testrunner\testrunner.py”, line 400, in pop

return result.decode(‘UTF-8’)

File “C:\Python27\lib\encodings\utf_8.py”, line 16, in decode

return codecs.utf_8_decode(input, errors, True)

UnicodeDecodeError: ‘utf8’ codec can’t decode byte 0xb2 in position 279: invalid start byte

Solution: At line400Error reported for utf8 encoding 0xb2 decoding: invalid

We must remember to delete the testrunner.pyc file and restart ride every time after modifying the testrunner.py file, otherwise it’s the same as changing it for nothing~!

 

    def pop(self):

        result = “”

        for _in xrange(self._queue.qsize()):

            try:

                result += self._queue.get_nowait()

            except Empty:

                pass

        return result.decode(‘UTF-8’)

Change UTF-8 to GBK

Then fix the problem!