Сохраненная лигатура HTML не рендерит
Я использую GroupDocs Viewer, чтобы взять PDF и создать страницу HTML для него. Я храню HTML в поле nvarchar(MAX) в моей базе данных SQL2012. Я только сегодня узнал во время некоторого тестирования, что у нас есть некоторые специальные символы (лигатуры) в документах, которые не отображаются правильно.
Знаки вопроса выделены только для того, чтобы их было легко найти.
Эти лигатуры (fl, fi, ff) отсутствуют по некоторым причинам. Я проверил свою базу данных, и они, кажется, хранятся там правильно.
Я проверил метод сервера JsonResult, который я использую для загрузки страницы, и я получаю несколько смешанных результатов, пытаясь определить, есть ли в строке pageHtml символ.
public async Task<JsonResult> LoadDocument(int contentID, int page)
{
try
{
var documentPageData = await APIAccess.Get<DocumentPageUserData>(DocumentPageData.GetDocumentPageRoute, contentID, CurrentUser.UserID, page);
JsonResult result = new JsonResult()
{
ContentEncoding = Encoding.Default,
ContentType = "application/json",
Data = new
{
pageHTML = documentPageData.DocumentPage.PageHtml //.Replace("?", "fl").Replace("?", "fi").Replace("?", "ff") //Don't like this idea
},
JsonRequestBehavior = JsonRequestBehavior.AllowGet,
MaxJsonLength = int.MaxValue
};
return result;
}
catch (Exception ex)
{
return Json(string.Format("There was an error loading the page.\r\n\r\nDetails:\r\n{0}", ex.Message),
JsonRequestBehavior.AllowGet);
}
}
Когда я наведите курсор мыши на DocumentPage.Html и попросите отобразить его как HTML, он выглядит великолепно. Текст Рендер имеет <span>?</span>
тем не мение. Не уверен, что это только потому, что в Text Render нет шрифта или есть другая проблема.
На клиентской стороне я сохраняю HTML-текст в хранилище сессий до тех пор, пока страница не будет запрошена, а затем отобразлю его в div таким образом.
var externalHtml = sessionStorage.getItem(currentPage);
$('.viewer').text('');
$('.viewer').append(externalHtml);
Я пытался проверить сетевой трафик и HTML на стороне клиента, но похоже, что он имеет? поэтому я не уверен, где я теряю своих персонажей. Есть идеи?
1 ответ
JsonResult не был должным образом закодирован. Я изменился ContentEncoding = Encoding.Default
в ContentEncoding = Encoding.UTF8
, После этого он оказал отлично. Вздох... Работаю над этим 2,5 дня.