2015-04-16 3 views
0

Я работаю с чат-приложениями Java, и добавляю смайлики, заменяя смайлик ярлыком, например :), с ◕‿◕. Это не изображение, которое я заменяю его простым текстом. Теперь проблема, с которой я сталкиваюсь, заключается в том, что иногда я получаю только Square boxes вместо фактической вещи, которую я хочу. Я делаю эти изображения/тексты в MS Word, преобразовывая unicode в фактическое изображение. Я также использую различные онлайн-ресурсы для получения этих изображений/текста.получение квадратных смайликов вместо фактических смайликов

Может ли кто-нибудь сказать мне, как избавиться от ящиков и получить фактический текст. Моя кодировка находится в UTF-8, и мой шрифт также установлен в monospaced.

ответ

0

Ваш символ Юникода, вероятно, не поддерживается вашим шрифтом. Либо шрифт реализует символ как поле, либо операционная система/средство отображения шрифтов рисует ящик вместо глифа.

+0

Я установил свой шрифт соответственно. Теперь я вижу глиф, который на самом деле присутствует. Но когда я храню его в базе данных дерби, он снова хранится как квадратный квадрат, а не как фактический глиф. Любые предложения относительно того, что я должен делать, чтобы база данных дерби также сохраняла ее в качестве фактического глифа. –

+0

Derby хранит символы unicode байтов, а не шрифт. Если вы берете байты из базы данных и каким-то образом их имитируете, шрифты * font * и * fontrenderer * будут определять, что вы увидите. Вы можете отобразить шрифт в виде изображений и сохранить их в базе данных. Или, лучше, укажите шрифт, который способен отображать все нужные вам символы. – RobAu

+0

Если я отрисую шрифт в виде изображений и сохранил их в базе данных, тогда я не смогу использовать их так, как хочу, поскольку я не могу заменить текст в строке изображением, поскольку String не принимает изображение. Таким образом, я использовал вышеупомянутый глиф, который представляет собой простой текст. –

0

Я бы сказал, что шрифт, используемый в вашем приложении, просто не может отображать некоторые символы. Найдите тот, который действительно может использовать этот шрифт.

Font имеет boolean canDisplay(char c) способ, который вы можете использовать. См. Также the doc about font

+0

Я установил свой шрифт соответственно. Теперь я вижу глиф, который на самом деле присутствует. Но когда я храню его в «базе данных дерби», он снова хранится как квадратный квадрат, а не как фактический глиф. Любые предложения относительно того, что я должен делать, чтобы база данных дерби также сохраняла ее в качестве фактического глифа. –

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