Unicode: связь между многоязычным веб-сайтом (asp.net) и шрифтом браузера и операционной системой - PullRequest
0 голосов
/ 31 июля 2009

Хотелось бы узнать связь между многоязычным веб-сайтом и шрифтом, установленным на клиентском ПК.

ПОДДЕРЖКА У меня есть один многоязычный веб-сайт с ресурсами на следующих языках: английском (великобритании), шведском (Швеция) и говорят на хинди (Индия) и т. Д.

Когда клиент открывает этот веб-сайт из другой географической области и не имеет некоторых шрифтов (шведский, хинди) на своем ПК. Теперь я хотел бы знать, что

  1. Будет ли текст сайта отображаться на всех языках или нет?
  2. Существует ли какая-либо связь между операционной системой, браузером и шрифтом для отображения многоязычного веб-сайта?
  3. В каком возможном сценарии сайт виден с искаженным текстом?

1 Ответ

0 голосов
/ 31 июля 2009

Браузер сообщает серверу, какие языки он принимает, через переменную HTTP HTTP_ACCEPT_LANGUAGE, которую сервер получает через

Request.ServerVariables["HTTP_ACCEPT_LANGUAGE"]

Сервер может соответствующим образом настроить свой вывод или игнорировать переменную.

Кроме того, отношение, которое вы ищете, полностью зависит от реализации браузера:

  • извлечение языковой настройки из полученного содержимого HTTP / HTML (*)

  • обычно язык соответствует диапазону Unicode

  • найти шрифт из настроек браузера / пользователя, сопоставляя диапазоны Юникода с (предпочтительными) шрифтами

  • вывод текста со шрифтом (через OS API)

(*) Теги HTML могут иметь атрибут lang = "language code", который переопределяет язык HTML / HTTP

Однако ОС может обнаружить, что некоторые символы не покрыты выбранным шрифтом, и может выбрать запасной шрифт (см. UniScribe глоссарий и блог Sorting It All Out здесь и здесь )

IMO, если браузер отправляет Accept-Language на сервер, вы должны допустить, что браузер знает, как правильно отображать содержимое.

...