Ошибка анализа OTS: неправильный entrySelector для каталога таблицы (ошибка шрифта OpenType)

В MVC 4 вы можете сделать:

protected override JsonResult Json(object data, string contentType, System.Text.Encoding contentEncoding, JsonRequestBehavior behavior)
{
    return new JsonResult()
    {
        Data = data,
        ContentType = contentType,
        ContentEncoding = contentEncoding,
        JsonRequestBehavior = behavior,
        MaxJsonLength = Int32.MaxValue
    };
}

в вашем контроллере.

Дополнение:

Для кого-то озадаченного по параметрам, которые необходимо указать, вызов может выглядеть следующим образом:

Json(
    new {
        field1 = true,
        field2 = "value"
        },
    "application/json",
    Encoding.UTF8,
    JsonRequestBehavior.AllowGet
);
0
задан user10869858 16 January 2019 в 13:30
поделиться

1 ответ

Похоже, что это было исправлено, если вместо расчетов использовать ссылку Apple вместо Microsoft:

https://developer.apple.com/fonts/TrueType-Reference-Manual/ RM06 / Chap6.html

Подтаблица смещения, документированная в таблице 4, начинается с масштабирующего типа шрифта. Количество помеченных таблиц в 'sfnt' следует. Сам каталог таблиц и любые подтаблицы не включены в это число. Записи для searchRange, entrySelector и rangeShift используются для облегчения быстрого двоичного поиска в каталоге таблицы, который следует. Если шрифт не имеет большого количества таблиц, последовательный поиск будет достаточно быстрым.

Если необходим более быстрый поиск, бинарный поиск легче всего выполнить по количеству записей, которое является степенью двойки. Это позволяет сократить количество элементов для поиска в два раза путем сдвига. Остальные записи смещаемых подтаблиц должны быть установлены следующим образом:

searchRange - это наибольшая степень двух, меньше или равная количеству элементов в таблице, то есть наибольшее количество элементов, которые можно легко найти. rangeShift - количество элементов минус searchRange; то есть количество элементов, которые не будут просматриваться, если вы посмотрите только на элементы searchRange. Перед началом цикла поиска сравните целевой элемент с элементом с номером rangeShift. Если целевой элемент меньше, чем rangeShift, выполните поиск с начала таблицы. Если оно больше, ищите, начиная с элемента с номером rangeShift.

entrySelector - это log2 (searchRange). Он говорит, сколько итераций цикла поиска необходимо. (т.е. сколько раз сократить диапазон пополам) Обратите внимание, что searchRange, entrySelector и rangeShift умножаются на 16, что представляет размер записи каталога.

0
ответ дан user10869858 16 January 2019 в 13:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: