You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I used this tool to generate mock class of wxDC which is part of wxWidgets and I got some error. I used below command: gmock.py dc.h -- -DWXDLLIMPEXP_CORE= -DWXWIN_COMPATIBILITY_2_8=0 -DWXDLLIMPEXP_FWD_CORE=
I got some error regarding encode and decode of strings, e.g.: str(node.spelling, self.encode)
After fixing them I got below error:
File "C:\Tools\gmock.py\clang\cindex.py", line 95, in value
return super(c_char_p, self).value.decode("utf8")
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe0 in position 0: invalid continuation byte
It will be great if you can take a look. I attached the file with which I ran this. dc.txt
Github doesn't support .h file and so I have renamed it to .txt.
The code seems haven't been properly tested with Python 3, I have changed str(node.spelling, self.encode) into node.spelling and then replace the clang python binding with clang 10 python binding and finally run successfully with these suites (On Ubuntu 20.04):
hi satya-das, Ive met the same problem! I solve it by changing return super(c_char_p, self).value.decode("utf8")
to return super(c_char_p, self).value.decode("utf8", error = 'ignore')
cuz if you dont explicitly set error, by default it's like bytes.decode(encoding="utf-8", errors="strict")
Activity
theidexisted commentedon Aug 19, 2020
The code seems haven't been properly tested with Python 3, I have changed
str(node.spelling, self.encode)intonode.spellingand then replace the clang python binding with clang 10 python binding and finally run successfully with these suites (On Ubuntu 20.04):LiuWenJia-ops commentedon Sep 7, 2022
hi satya-das, Ive met the same problem! I solve it by changing
return super(c_char_p, self).value.decode("utf8")to
return super(c_char_p, self).value.decode("utf8", error = 'ignore')cuz if you dont explicitly set
error, by default it's likebytes.decode(encoding="utf-8", errors="strict")