2015-02-15 3 views
0

Я хочу найти символ ASCII-кода для программирования андроида для поддержки арабского языка. В Android-программировании много символов различаются по-английски. Код ASCII во многих письмах или несколько букв разделены. Как я могу найти специальный код для каждой буквы?Арабский unicode или код ASCII в java

+3

Это совсем не ясно, что вы имеете в виду, я боюсь, но ASCII содержит только 127 символов - без арабских. Что именно ты пытаешься сделать? Вы можете посмотреть на http://unicode.org, чтобы найти код кода Unicode для любого символа, но, не зная контекста, неясно, поможет ли это вам. –

ответ

2

Если вы хотите получить Unicode символов ниже код будет делать:

char character = 'ع'; 
int code = (int) character; 
2

Unicode является нумерация всех символов. Нумерация потребует трех байтовых целых чисел. Символ Юникода представлен в науке как U + XXXX где XXXX обозначает число в шестнадцатеричном (базовое 16) обозначение. Символ Юникода называется Код, в Java с типом int.

Java char - 2 байта (UTF-16), поэтому не может представлять Юникод более высокого порядка; там используется пара двух символов.

Класс класса Java относится к преобразованию.

char lowUnicode = '\u0627'; // Alef, fitting in a char 
int cp = (int) lowUnicode; 

Можно перебирать кода точек строки следующим образом:

String s = "..."; 
    for (int i = 0; i < s.length();) { 
     int codePoint = s.codePointAt(i); 
     i += Character.charCount(codePoint); 
    } 

    String s = "..."; 
    for (int i = 0; i < s.length();) { 
     int codePoint = s.codePointAt(i); 
     ... 
     i += Character.charCount(codePoint); 
    } 

Или в Java 8:

s.codePoints().forEach(
     (codePoint) -> System.out.println(codePoint)); 

сбросами арабский между U + 600 и U + 8 и далее :

Код ниже выдает Unicode в основном арабском диапазоне.

for (int codePoint = 0x600; codePoint < 0x900; ++codePoint) { 
    if (Character.isAlphabetic(codePoint) 
      && UnicodeScript.of(codePoint) == UnicodeScript.ARABIC) { 

     System.out.printf("\u200E\\%04X \u200F%s\u200E %s%n", 
       codePoint, 
       new String(Character.toChars(codePoint)), 
       Character.getName(codePoint)); 
    } 
} 

Под Windows/Linux/... существуют средства отображения символов для отображения Unicode. Выше U + 200E - слева направо, а U + 200F - знак справа налево.

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