2010-05-19 55 views
4

我知道歐元貨幣符號(€)在HTML中被編碼爲€,但System.Web.HttpUtility.HtmlEncode("€")根本不編碼它。有誰知道這是爲什麼?ASP.NET Server.HtmlEncode不編碼€

+0

@Daniel我會對你的無知(即使你是在開玩笑)的評論下降評論,不幸的是,我不能 – Felix 2010-05-19 12:26:50

+4

我不是無知。認爲我是不可靠的,並且有點討厭,但是如果我是無知的,那麼我對我的無知是無知的 – 2010-05-19 12:53:03

回答

6

HttpUtility.HtmlEncode僅編碼在HTML中「保留」的字符。對於該列表,請參見此頁上的第一個表格:http://www.w3schools.com/tags/ref_entities.asp

換言之,只有能與HTML(例如<,>,」,等等)的基本結構法衝突這些字符。沒有其它字符必須,只要所發送的字節的編碼被識別編碼正確的(例如,通過使用和聲明UTF-8)

+0

你確定這是真的嗎?我使用HtmlEncode,它的編碼度符號爲°,但它不是編碼商標符號。我明白你在說什麼,但它似乎適用於不一致的編碼選擇。我不認爲這些學位符號是保留在HTML中的。 – HBlackorby 2013-11-26 21:59:20

+0

我在2.5年前編寫答案時可能錯了,或者ASP.NET可能已被更改。我最近沒有使用過ASP.NET,所以無法確認或否認這兩種可能性。如果你有時間,我鼓勵你在這裏研究和寫一個更準確和最新的答案。 – 2013-11-27 07:15:19