2013-09-18 2 views
0

Я разрабатываю игру в HTML5/Canvas. Большинство моих игровых объектов представлены как символы Uncicode. У меня есть три шрифта, встроенных в сайт в связке разных форматов. Все три этих шрифта имеют поддержку большинства глифов в базовой многоязычной плоскости и дополнительной многоязычной плоскости (другими словами: они содержат символы, которые я использую в качестве игровых объектов).Проблемы с Firefox с Unicode-шрифтами

Пока я тестировал прототип на нескольких браузерах, я с неохотой понял, что в Firefox/Gecko происходит что-то странное. Я собрал небольшой тест, и вот что я нашел.

В Chrome и других браузерах, основанных на Webkit, все символы всех шрифтов отображаются отлично.

У Firefox, похоже, есть проблемы с загрузкой шрифтов. Это странно: я предоставил шрифты во всех обычных форматах (ttf, eot, woff, svg), и нет никаких межсайтовых shenaningans, поскольку они сохраняются во вложенной папке папки, содержащей текущую страницу. Тем не менее, firefox отображает весь текст шрифта по умолчанию (Times New Roman). Также интересно отметить, что если вы используете шрифт, который не включен в веб-страницу, но установлен на вашем локальном компьютере, Firefox покажет обычные латинские символы, но любые другие символы юникода снова появятся в Times Новый Роман.

Это либо ошибка в Firefox, но, скорее всего, я, конечно, ошибся. Может ли кто-нибудь указать, что вызывает эту проблему и как ее решить?

Фото:

Firefox имеет проблемы с шрифтами, все они выглядят одинаково: Firefox showing the page with problems

страница, как это должно выглядеть, используя Google Chrome: Chrome showing the page as it should

Чтобы проверить это страница с настоящим прототипом: http://wmmusic.nl/codexamples/pixijs/fonttest/smuv2.html

EDIT:

После нескольких исследований и запросов в канале IRC#firefox в Mozilla, я узнал, что что-то не так с использованием шрифтов .ttf, которые я использую. Кажется, что некоторая таблица в шрифте повреждена таким образом, что Firefox не может ее загрузить.

Отладчик показывает следующее сообщение об ошибке:

[14:05:04.286] downloadable font: table 'post': failed to parse table (font-family: "unifont" style:normal weight:normal stretch:normal src index:2) 
    source: http://wmmusic.nl/codexamples/pixijs/fonttest/fonts/unifont5-1.ttf 
    [14:05:04.286] downloadable font: rejected by sanitizer (font-family: "unifont" style:normal weight:normal stretch:normal src index:2) 
    source: http://wmmusic.nl/codexamples/pixijs/fonttest/fonts/unifont5-1.ttf 

Он делает это для обоих шрифтов (unifont и Code2000), в обоих .woff и форматов .ttf (это те, Firefox прочтений). Кажется, Кивира работает. Quivira - единственный шрифт, который я конвертировал с FontSquirrel, поскольку он является единственным шрифтом, достаточно малым для этого. Другие шрифты, которые я преобразовал с помощью FontForge (для формата .svg), CLI, называемый tff2eot (для формата .eot), и инструмент из Mozilla, называемый sfnt2woff (для формата .woff).

Теперь, чтобы выяснить, как исправить эти ошибки и/или заставить Firefox не заботиться о них.

+0

После нескольких исследований и запросов в канале IRC#firefox в Mozilla, я узнал, что что-то не так с использованием шрифтов .ttf, которые я использую. Кажется, что некоторая таблица в шрифте повреждена таким образом, что Firefox не может ее загрузить. – Qqwy

ответ

1

Добавить в заголовок страницы:

<meta charset="utf-8"> 

Кстати, страница занимает очень много времени для загрузки!

+0

Да, это действительно так. Поскольку я использую несколько шрифтов около 10 Мб каждый, страница довольно тяжелая. Как только игра будет закончена, я разделил шрифты на символы, которые я использую. Кроме того, я хочу загрузить их с помощью загрузочной панели (после загрузки самой страницы) – Qqwy

+0

Я добавил метатег charset. К сожалению, это, похоже, не решает проблему. – Qqwy

Смежные вопросы