Это интересный вопрос, несмотря на то, что он притягивает пиратов.Я сосредоточусь на техническом вопросе и попытаюсь дать некоторое представление.
Глядя на файл ОП, в нем есть шесть шрифтов.Каждый из них в основном правило CSS;Вот первый пример в файле примера:
@font-face {
font-family: "p22-underground-1";
font-style: normal;
font-weight: 400;
src: url("data:font/opentype;base64,d09GRk9...yn4b8C3JEZAA==");
}
Это говорит вам обо всем, что вам нужно знать, чтобы определить шрифт.Вы можете увидеть его имя ( p22 -ground-1 ), его стиль ( normal ), вес ( 400 ) и тип ( opentype )).
Что касается декодирования шрифта из base64 в двоичный файл, вам нужно взять бит base64 (показан выше как d09GRk9...yn4b8C3JEZAA==
, обратите внимание, что объем в центре был удален, чтобы сэкономить место здесь) ирасшифруйте его с помощью декодера base64, такого как Motobit или написав программу.
Если вы работаете в Linux, вы можете использовать base64 -d <file>
для достижения того же.
Если декодирование завершится неудачно, строка base64 также может быть с процентным экранированием .Это не относится к примеру OP, но я знаю по крайней мере один сайт , где это так.
Вы можете проверить это, посмотрев на символы процента %
встрока base64.Если процентные символы являются единственными не действительными символами base64, то вы можете попытаться удалить строку перед декодированием.
Существует веб-сайт , где вы можете сделатьэто или, опять же, для тех, кто в Linux, метод командной строки показан ниже (есть много способов сделать это; этот использует Perl):
perl -MURI::Escape -lne 'print uri_unescape($_)' < file.b64_escaped > file.b64
Я написал небольшой инструмент в Ruby, которыйберет URL-адрес и выгружает любые встроенные шрифты в файлы, используя описанные выше методы, поэтому я могу сказать, что они действительно работают.