2011-01-24 1 views
1

Я установил String myText = "\ u2327 \ u2381 \ u2352 \"; и попробуйте отобразить его в текстовом виде , но я просто вижу 3 прямоугольных блока в эмуляторе Android. Несмотря на то, что примечание о выпуске версии Android 2.3 говорит о поддержке хинди, я все еще не вижу хинди-персонажа, появляющегося в эмуляторе.Невозможно увидеть символы индийского языка даже в android 2.3

+0

Аналогичный вопрос: http://stackoverflow.com/questions/4478105/problem-with-hindi-keyboard-on-android-2-3-emulator –

ответ

0

Похоже на проблему с шрифтом, попробуйте установить TextView, чтобы использовать шрифт с подходящими глифами.

1

Языки Индии в настоящее время не поддерживаются на многих устройствах, включая эмулятор.

Только устройства Samsung, продающиеся в Индии, поддерживают хинди.

Вы не одиноки с этой проблемой! :-)

1

Телефоны Android не имеют ошибки по умолчанию хинди.

Вы должны убедиться, что используете пользовательский шрифт Hindi.

Создайте папку под названием fonts в вашей папке assests.

Поместите свой custom_font_hindi.ttf в assets/fonts.

Typeface tf = Typeface.createFromAsset(getAssets(),"fonts/custom_font_hindi.ttf"); 
     TextView tv = (TextView) findViewById(R.id.CustomFontText); 
     tv.setTypeface(tf); 

Тогда вы увидите нужный шрифт в хинди вашей TextView

1

Вы можете использовать DroidHindi.ttf шрифта (например, поиск в google.com). Добавьте его в папку в свой проект и загрузите этот шрифт в свои представления.

Typeface t = Typeface.createFromAsset(getContext().getAssets(), "DroidHindi.ttf"); 
textView.setTypeface(t); 
+0

Спасибо. Но я вижу, что могут отображаться только простые символы хинди, например, \ u9018 отображается правильно, но сложные символы хинди, такие как \ u2365 \ u2369, по-прежнему отображаются в виде прямоугольного прямоугольника. Кто-нибудь получил решение проблемы? – liveperson

1

У меня есть Samsung Galaxy S. Я установил DDJV6, используя Kies over JP6. Но я чувствую себя абсолютно обманутым Samsung, так как так называемый «индийский релиз» не поддерживает никаких шрифтов хинди или индексов. Я говорю о чтении хинди. Что касается ввода текста, хинди даже не отображается в качестве языка ввода данных. Позор Samsung, что он не может использовать неотъемлемые особенности Gingerbread! Я так говорю, потому что даже Froyo Официальный релиз Galaxy S в Индии может правильно отобразить шрифты хинди. Было много высоких утверждений о том, что Gingerbread будет поддерживать 52 языка (как для чтения, так и для записи), и вот этот Samsung, что он даже не может отображать возможности чтения в Galaxy S на базе Android 2.3.3.

+0

Можете ли вы рассказать мне, что является вашей строкой? (Он находится в разделе «Настройки -> О телефоне -> версия для базового диапазона») – Reno

2

Даже если у вас установлен шрифт Devanagari, вы не получите надлежащего рендеринга для текста хинди на телефонах Android.

Те же яблоки на все сложные индоевропейской скрипты (Bangla, деванагари, каннада, тамильском, телугу, тибетские, пенджаби, сингальских и т.д.)

Проблема в том, что, хотя Android «поддерживает Unicode» нет комплекса поддержка рендеринга скриптов - даже в эмуляторе Andoid 4.0 (ICS). Из-за этого письма не присоединяются, чтобы правильно сформировать конъюнкты, и поэтому текст довольно хорошо читается.

Пока Google не установит, что эти индийские языки не будут отображаться должным образом.

Это будет не очень сложно для них исправить.В Linux (на базе которого основан Android) сложный текстовый рендеринг для индексированных скриптов поддерживается библиотекой, известной как Pango или Harfbuzz, которая является открытым исходным кодом - но почему-то (отсутствие реального интереса к рынку Индии и Южной Азии?) Google решил не реализовывать это в Android.

Индикаторные скрипты прекрасно работают на телефонах, которые используют другие операционные системы на базе Linux, такие как N900 от Nokia. Даже некоторые телефоны Symbian могут отображать текст на экране с помощью поддержки в Qt.
Apple iPhone теперь также хорошо отображает индийские языки.

Если Google и их OEM-производители заботятся о продаже телефонов Android в Индии, им действительно необходимо срочно исправить этот дефект.

1

Я нашел решение для использования использования шрифтов хинди в Android. Это очень простое решение. Но трудно направить шрифт хинди.

использование

DroidHindi.ttf

это шрифт, который поддерживает на языке хинди.

Скачайте его и разместите в папке Assets. Выполните следующий код, чтобы установить шрифт:

TextView tv = (TextView) findViewById (R.id.textView);

Typeface fontHindi = Typeface.createFromAsset (getAssets(), "fonts/DroidHindi.ttf");

tv.setTypeface (fontHindi);

Теперь вы можете легко найти решение.

Кроме того, вы можете поместить текст хинди в файл .txt и прочитать его также. Как это.

Поместите все Hindi .txt файлы в папке Assets и вызвать функцию для извлечения хинди текст, как:

общественного недействительными readData (интермедиат тег) {

// file to inputstream 
    InputStream input = null; 
    try { 

     int tagV = tag +1; 

     input = ctx.getAssets().open("sample "+tagV+".txt"); 

     int size = input.available(); 
     byte[] buffer = new byte[size]; 
     input.read(buffer); 
     input.close(); 

     // byte buffer into a string 

     detailtext = new String(buffer); 
    } catch (IOException e) { 

     e.printStackTrace(); 
    } 

} 

Я использую 15 файлы здесь, поэтому я подвергаюсь циклу.

+0

Я вдохновлен этим уроком; http://javatechig.com/android/how-to-use-hindi-font-in-android-application – hitesh141

0

индийских Языки в Unicode - Проблемы и решения

В ASCII Chart, сама точка кода является блок кодирования (8bit блок). В Unicode Chart версии-1 также самой кодовой точкой был блок кодирования (16-разрядный блок)

После введения диаграмм с 16 бит до 31 бит, только в 16-битной диаграмме сама кодовая точка является блоком кодирования , Для остальных графиков вводятся три метода кодирования viz (1) UTF-8 с блоком кодирования битов (2) UTF-16 с 16-разрядным кодирующим блоком с использованием суррогатных пар и UTF-32 с 32-битным кодирующим блоком.

В UTF-16 суррогатные пары могут быть получены только до 17 самолетов - до кодовой точки 10FFFF. Поэтому использование самолетов было ограничено 17 самолетами для всех трех методов кодирования с целью взаимопроницаемости.

Проблемы

(1) Первый Primary Проблема: Принцип кодирования атомных символов, в одиночку.

Консолиум-самоубийство не кодирует, кроме атомных символов, поэтому для Vowel-Consonants, Conjuncts и др. Индийских языков не было выделено никаких кодовых точек.

Консорциум Юникод кодирует «часть по части алфавита» - virama (்), знаки гласных (ி) и т. Д., В качестве метки для расчесывания (Mc и Mn) и (2) присоединяет «каждый» из них к уже закодированный согласный, что приводит к отсутствию навыков вычислений для этих языков, вместо кодирования «цельного» алфавита, как это сделано для идеографа. Кроме того, память кодирования также утроилась для индийских языков.

(2) Вторая первичная проблема: использование метода кодирования UTF-16 с суррогатными парами.

Поскольку наиболее часто используемые символы находятся в BMP, обработка суррогатных пар часто не проходит тщательного тестирования. Это приводит к постоянным ошибкам и потенциальным недостаткам безопасности даже в популярном и хорошо зарекомендовавшем себя прикладном программном обеспечении.

Не ожидается, что большинство самолетов будут использоваться в обозримом будущем, учитывая, что общие размеры известных систем записи останутся для кодирования. Количество возможных символов символов, которые могут возникнуть вне контекста письменных систем, потенциально огромно. В настоящий момент 11 самолетов из 17 не используются

(3) Третья проблема: Намного больше потребности в памяти для UTF-8.

3 байта (октеты) необходимы для кодирования гласных и унаследованных согласных индийских языков. Но не существует кодовых точек для Vowel-Consonants и т. Д. Кодирование выполняется для Pulli, символов гласных и т. Д. Отдельно и добавляется с кодированием унаследованных согласных посредством программирования для индийских языков. Поэтому для Vowel-Consonants требуется 9 байтов (октетов) с 8-разрядным блоком. Компьютерный навык не похож на английский, и ему не хватает связи с программированием.

(4) Четвертая проблема: отсутствие доступности ISCII с кодировкой 10 бит.

Поскольку ISCII основан на 8-битовом блоке кодирования, все кодировки символов невозможны для индийских языков, количество алфавитов больше 256. Для языков, таких как французский, можно было кодировать все символы. Для скрипта Devanagari нельзя кодировать все символы. Поэтому предложение ISO 8859-12 не было принято. Индия не предприняла никаких действий для обновления ISCII с помощью 10-битного блока кодирования с 1024 кодовыми пространствами и утверждения ISO для получения одобрения. Unicode включал все индийские языки на основе ISCII с 8-битным кодированием, хотя ни один ISO не был доступен. Общий список алфавитов, сам по себе, для индийских языков, кроме тамилов, недоступен. Поэтому Индия не просила кодировать все символы. Индия не взяла на себя инициативу, чтобы получить всю кодировку символов, обновив ISCII.

Для Тамила GOTN разработал TACE16, метод кодирования всех символов, в PUA (Private Use Area), в консультации с Unicode Consortium и используется. Однако, на основе TACE16, GOTN не подошел к Юникодному консорциуму для всех кодировок символов для тамильского. Причина не приближается к Юникодскому консорциуму.

Solutions

(1) Процедура alloting кодовых точек для одного только Atomic характера должно быть удалено.

(2) Использование UTF-16 с парами выпрашивания должно быть устаревшим.

(3) Необходимо ввести UTF-10, экономический метод кодирования.

(4) При необходимости ISCII должен быть модернизирован с помощью 10-битного (дефлекторного) блока кодирования.

Если процедура выделения кодовых точек для атомного символа в одиночку устранена, то для остальных оставшихся гласных согласных и т. Д. Могут быть выделены кодовые точки и проложить путь для всех кодировок символов и общего вычислительного навыка для Индийские языки, такие как английский.

Если UTF-16 с суррогатными парами устарел, все самолеты, созданные IEEE, получат новую жизнь и будут работать как BMP.

Если UTF-10 вводится, память кодирования будет экономичнее

При необходимости ГОИ следует модернизировать и использовать ISCII с 10 бит (declet) блок кодирования для индийских языков, так что Консорциум Unicode можно подойти для всех кодировок символов, получая кодовые точки для всех алфавитов.

Если ГОИ и все правительства штатов реализуют вышеуказанные решения для проблем в сотрудничестве с Юникодским консорциумом, не только индийские языки, но и другие языки, такие как языки CJK, достигнут общего вычислительного навыка, такого как английский. Кодирующая память будет очень экономичной. В результате весь мир будет развиваться очень быстро.