參照此問題的接受的答案:ASP.NET - What Characters does Server.HtmlEncode Encode into Named Character Entities爲什麼ASP.NET MVC實體編碼所有8位字符> ansi 127?
這裏引用了HtmlEncode
的源代碼。我必須如下的問題:其實體編碼表示(&#<ansicode>)
if ((ch >= '\x00a0') && (ch < 'Ā'))
{
output.Write("&#");
output.Write(ch.ToString(NumberFormatInfo.InvariantInfo));
output.Write(';');
}
基本上,這個轉換所有字符從
(ASCII碼127)到Y(ANSI CODE 255)。
儘管ansi代碼大於255的所有字符只是按原樣寫入輸出。
有沒有人知道ANSI 127 - 255編碼的基本原理?它看起來有點傻有一個網頁,在UTF-8,在源代碼看起來像
"Søk:"
,而不是
"Søk:"
(「SOK」是挪威的「搜索」)。
「不要在屏幕後面看起來很傻」並不是HTML編碼試圖解決的問題 - 這是爲了明確表示內容。只有「擴展ascii」的範圍是模糊的;高於255 *的字符碼完全不是* ascii。 –
我不明白爲什麼會提到ASCII。這裏沒有什麼是ASCII:C#字符串是Unicode,HtmlEncode在這些Unicode字符串上工作。 – Codo
@Codo:ANSI可能更正確,但8位ASCII是一個廣泛使用的術語,雖然在技術上不是100%正確的。我編輯了原始問題。我當然在談論8位字符集,例如iso8859-1(aka latin-1)等。 –