PREAMBLE: с API 17 (Android 4.2) существует метод TextView.setTextLocale()
, который явно решает эту проблему для TextViews и производных классов. Назначьте японский язык (Locale.JAPAN
), а персонажи Unihan будут выглядеть японскими.Японские символы, похожие на китайские на Android
У меня есть приложение на Android, которое отображает японский текст в WebViews и TextViews. Есть несколько китайских иероглифов (кандзи), которые, по соглашению, выглядят по-разному в Китае и Японии, но имеют один и тот же код Unicode. Обычно браузер полагается на тег lang
, чтобы выбрать правильный глиф. На Android все они по умолчанию по-китайски настроены, и мне нужны японские формы.
Проблема хорошо объясняется в this article. Эта статья также служит прекрасной иллюстрацией проблемы - при просмотре на Android (до 2.2) символы в «Примеры символов, зависящих от языка» выглядят одинаково, а китайцы.
Использование атрибута lang="ja"
не помогает. Переключение всей языковой системы на японский язык тоже не помогает.
Мне интересно, какие телефоны Android продаются в Японии. Такие персонажи, как 直, 今, 化 выглядят в китайском стиле тоже? Я предполагаю, что нет.
Итак, вопросы: есть ли официальные локализованные изображения Android там? Могу ли я запустить его на эмулятор? Является ли шрифт DroidSansFallback по-прежнему единственным шрифтом с поддержкой CJK? И если это так, это то же самое, что и на Android-телефоне Vanilla?
Я как бы надеюсь, что японские глифы скрыты где-то глубоко в шрифте (частная область Юникод или что-то еще). Если это так, я мог бы использовать их ...
EDIT: расположенный DroidSansJapanese.ttf, установленный на эмуляторе путем копирования в/system/fonts, перезапущен. Это не повлияло на внешний вид статьи Unihan. Даже область подсказок японского ввода текста (который должен знать лучше) отображается как китайский.
Как узнать название шрифта DroidSansJapanese.ttf? Я чувствую, что это все еще Droid Sans, так же, как и во встроенном шрифте DroidSansFallback. Но если они содержат один и тот же шрифт, что определяет, какой из них должен иметь приоритет? Можно было бы подумать - системный язык, но, видимо, нет. Шрифты в Android установлены только путем копирования, не так ли?
FYI Эти символы выглядят китайскими в вашем посте. :) –
Те персонажи, которые вы разместили, - это китайское слово ... некоторые из японских слов также будут иметь какое-то китайское слово – xDragonZ
Я нахожусь в Японии, и у меня нет проблем с этим. У нас (компании) есть американская (?) Версия галактики и нет проблем с отображением японских персонажей. Одна вещь, которая принесет мне проблемы на webviews не устанавливая UTF-8 META тег: Можете ли вы опубликовать ссылку или образец страницы, с которой вы столкнулись? С каким устройством у вас проблемы? Я могу попытаться ответить, если вы дадите более подробную информацию. здесь вы просто говорите, что андроид не может отображать japanese, который я не думаю, что это правда. – DallaRosa