Последовательность символьных символов HTML 愛
(т.е. восемь одиночных байтов &
, #
, 2
, 4
, 8
, 5
, 9
, ;
inих традиционные значения ASCII), представляющие кодовую точку Unicode, не совпадают с последовательностью байтов UTF-8, представляющей кодировку UTF-8 той же кодовой точки (то есть 4 шестнадцатеричных байта 0xF0 0xA4 0xA1 0x99).
http://people.w3.org/rishida/tools/conversion/
Что происходит?
Это простое консольное приложение показывает, что обычные кодовые точки Unicode (при условии, что они не представляют вещь, требующую экранирования HTML, такую как <), не получаютпереведено: </p>
using System;
using System.Web;
namespace ConsApp
{
class Program
{
static void Main(string[] args)
{
int lp = 0;
string[] Inputs = {"\U00024859", "<tag>\U00024859<\\tag>"};
foreach (var Test in Inputs)
{
string HTML = HttpUtility.HtmlEncode(Test);
Console.WriteLine(String.Format(HTML != Test ? "String {0} Changed" : "String {0} Unchanged", lp));
lp++;
}
}
}
}
Ваша проблема в том, что текст уже преобразован в последовательность ссылок на символы, а HTML-кодирование предполагает, что вы хотите видеть символы &.Как и во втором примере, где <преобразуется в <code><