Ok, interesting.
1st off, @froggerman. The &0179 character is what comes up in mame's own listinfo for me, using the command line: mame -listinfo > listinfo.xml
However, the error you were getting comes from the controlsdat.xml which when downloaded from the controlsdat project has the proper 3.
2ndly, I think on preliminary research (although I am probably opening myself up to some 'xml noob' abuse here) that if an xml file contains characters that are outside the ANSI 0-127 - which 3 is - then they should(?) have an encoding flag in the 1st line of the xml indicating that they contain special characters. For example the first line of the controlsdat.xml is:
<?xml version='1.0'?>
However, if I change this to:
<?xml version='1.0' encoding="UTF-16"?>
AND save it as "unicode" file - then it will parse perfectly and generate a 3 no problem.
Anyway, I'm sure its a limitation with the parser to some extent, as you can't just change the encoding flag and not the file format as it will say "can't change encoding" when trying to parse.
Can anyone enlighten me as to whether the XML file should contain this flag, or is it simply rubbish parsing?