![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| IDVsbruck |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 778 Регистрация: 12.11.2006 Репутация: нет Всего: 22 |
Для динамического создания битмапа на сервере (JSP-servlet) необходимо использовать определнные графические символы из некоторых шрифтов. Устанавливать на хостинге шрифты из-за меня одного и из-за нескольких символов абсурдно. Поэтому я использую следующий код подключения внешнего шрифта:
В результате показывает прямоугольничек. При задании любого символа одно и тоже. При подключении обычного тексторого шрифта - все показывается отлично. К примеру, подключил Academia.ttf - работает. Также пробовал менять кодировки (через new String(str.getBytes({encoding1}), {encoding2})) - не помагает. Пробовал вытаскивать глифы - их там нет, то есть проблема уже на уровне подключения шрифта. Как решить проблему - ума не приложу. Буду очень признателен за дельный совет. Это сообщение отредактировал(а) IDVsbruck - 26.1.2007, 16:00 |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15719 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
Т.е. проблема не со всеми шрифтами, а только с одним конкретным?
Можешь его выложить? -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| IDVsbruck |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 778 Регистрация: 12.11.2006 Репутация: нет Всего: 22 |
Просмотрел - любой графический шрифт не показывает символы. К ним также относится старый добрый Wingdings.
Другими словами, я попробовал взять графический шрифт из реестра системы (опять же, тот же Wingdings) и отобразить символ(ы) - тот же прямоугольничек (метод Font font = new Font("Wingdings", Font.PLAIN, 40);). Однако я заметил такую закономерность: если в программке из стандарного пакета Windows (любой версии) - Character table (Таблица символов) символы внизу показываются как "U+XXXX", то есть полноценный Unicode, то и в AWT все в порядке, но если как "0xXX", то прямоугольнички. Символы в java можно задавать либо символами ("а", "б") либо универсальным написанием ('\u0041', '\u0042'), но в любом случае AWT представляет их в формате UTF8. Но шрифты, по всей видимости, представлены кодировкой ASCII, ANSI, Cp855, Cp1251 или еще какой-то другой, поэтому при чтении символа он "читается не оттуда". То есть я вижу проблему - как задать правильно указатель на нужный символ? Возможно, мои наблюдения немного абсурдны, но длительность возни с этим вопросом заставляет меня цепляться за любую "ерунду". |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15719 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
1. Задание сивола 'A' или '\u0000' имеет значение только для компилятора, внутри Java все строки храняться в UTF-16.
2. Я поэксперементировал с шрифтом Wingdings, символя в нем нормально отображаються, только они находятся не в диапазоне букв, а в диапазоне символов (\uF020 и старше).
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| IDVsbruck |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 778 Регистрация: 12.11.2006 Репутация: нет Всего: 22 |
Блин, ну где ты раньше был???
Огромное тебе спасибо! Считай, что я тебе уже бутылку высмтавил! Тему закрываю. |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15719 Регистрация: 24.3.2004 Где: Dublin Репутация: 38 Всего: 538 |
Пожалуйста
P.S. Я предпочитаю Guinness -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |