На внешнем сервере, вероятно, установлена версия Arial, которая не включает набор символов японского языка (насколько я помню, тот, который включает японский язык, называется "Arial Unicode MS").Помните, что когда вы генерируете образ в ASP.NET, используются серверные шрифты.
Обратите внимание, однако, что по закону вам не разрешается устанавливать «Arial Unicode MS», кроме случаев, когдаэто часть Office - или если вы лицензировали его («Arial Unicode») от Monotype / Ascender .Возможно, будет более приемлемым вариантом заменить Arial какой-либо другой гарнитурой, в зависимости от ваших средств (из этого я оставлю свои субъективные мнения по Arial).
При установке нового шрифта на сервере сделайтеуверен, что вы перезапустите IIS..NET не распознает установленные шрифты до перезапуска (этого недостаточно для перезапуска приложения - может быть достаточно для перезапуска пула приложений, но я никогда не пробовал).
Обновление
Если это все еще не работает, скорее всего, запасной вариант шрифта не на месте.То есть вы указываете «Arial», но GDI + (DrawString
) не знает, что нужно переключиться на «Arial Unicode MS» для символов, которых нет в Arial (я думаю, Office устанавливает это при установке).
Две возможности:
Измените свой код, чтобы фактически использовать шрифт (то есть «Arial Unicode MS»), а не «Arial» (который никогда не имеет японские символы в любомдругие версии).Это имеет тот недостаток, что если вы используете символы, отличные от японских, они могут выглядеть (даже) хуже, чем в стандартной гарнитуре «Arial», поскольку «Arial Unicode MS» не содержит кернинга или других подобных функций.
Или проверьте, есть ли связь между Arial и другими шрифтами в вашем (локальном) реестре: HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink
- один из этих шрифтов будет фактически отображать ваши японские символы в качестве запасного шрифта - он можетдаже не быть "Arial Unicode".Вы можете добавить эту же ссылку вручную в реестре на сервере (и, возможно, перезапустить IIS).
Еще один вероятный вариант, который можно использовать в качестве запасного варианта, - «MS Gothic».Насколько я помню, GDI + использует вышеупомянутую систему "FontLink" для восстановления шрифтов, в то время как WPF использует свою собственную систему.Самый простой способ быть уверенным (когда вы используете шрифты, которые вы все равно контролируете) - это напрямую использовать шрифт с японскими глифами.Arial Unicode просто предназначен в качестве последнего средства для Windows, когда глифы не встречаются в других шрифтах - не как то, что выглядит красиво само по себе.