[Bug]: The GetLine() API method has an error in parsing Chinese, which may be caused by Unicode encoding.
What happened?
I tried to parse this line: #15236= IFCPROPERTYSINGLEVALUE('soil_layer_name',$,IFCIDENTIFIER('\X2\7d20586b571f\X0\'),$); using web-ifc api method like this const props = await this.ifcapi.GetLine(this.modelId as number, id), and I get incorrect text. After I change '\X2\7d20586b571f\X0\' to uppercase '\X2\7D20586B571F\X0\' and then I get correct text, so I think there is something wrong in text parsing part.
Version
0.0.56
What browsers are you seeing the problem on?
Microsoft Edge
Relevant log output
No response
Anything else?
No response
@beachtom I investigated the bug and found that the lowercase letters included in \X2\ and \X0\ in the IFC file not in the correct character range, and the bug that could be fixed was in parsing/string_parsing.cpp, add new line if (value >= 'a' && value <= 'f') return value - 'a' + 10; in function char getNextHex()
After add this line, right decoded:
Before add this line, error decoded :
this comment may help somehow.