zzzprojects / html-agility-pack

Html Agility Pack (HAP) is a free and open-source HTML parser written in C# to read/write DOM and supports plain XPATH or XSLT. It is a .NET code library that allows you to parse "out of the web" HTML files.
https://html-agility-pack.net
MIT License
2.65k stars 375 forks source link

  is converted to 0xA0 in InnerText #493

Open tamws27 opened 1 year ago

tamws27 commented 1 year ago

I found a quite weird problem.

I follow the guide "Decode and strip HTML" example to decode the html before loading https://html-agility-pack.net/online-examples

HtmlDocument doc = new HtmlDocument();
string subcriterionCritiqueDecode = WebUtility.HtmlDecode(page); // decode html first before loadHtml
doc.LoadHtml(subcriterionCritiqueDecode);

I have some html code like this inside a <td>:
<td>1.0 through&nbsp; version 2.0</td>

I expect the &nbsp; will be converted to space (hex: 0x20) in the InnerText, however I found that the HAP converted it into 0xA0! (I checked by showing the hex value using Console.WriteLine("{0:X2}", (int)ch);

HAP version: 1.11.46 .NET version: 7.0.1

elgonzo commented 1 year ago

(Edit: Oops, i did read your issue report wrong, and i wrote an incorrect comment, which i deleted)

Your expectation is wrong. There is no problem.

\  is the HTML entity for the no-break space character, and the Unicode character code for the no-break space character is indeed 0xA0.

(Please be so kind and close your issue report, as it is based on an incorrect assumption. You as the author of the issue report should see the close button at the bottom of this issue thread. Thanks!)