2012-02-29 7 views
1

내 응용 프로그램에서 일부 아랍어 텍스트를 사용하고 있습니다. 아랍어 텍스트가 잘 표시됩니다.장치에 아랍어 표시 J2ME

하지만 기기에 제대로 표시되지 않습니다.

시뮬레이터에서와 같이 مرحبا입니다.

하지만 기기에서는 مرحبا와 비슷합니다.

나의 필요는 이것이다 مرحبا.

답변

5

MIDP 응용 프로그램의 텍스트 리소스를 만들고 런타임에로드하는 방법. 이 기술은 유니 코드 안전하므로 모든 언어에 적합합니다. 런타임 코드는 작고 빠르며 비교적 적은 메모리를 사용합니다.

اَللّٰهُمَّ اِنِّىْ اَسْئَلُكَ رِزْقًاوَّاسِعًاطَيِّبًامِنْ رِزْقِكَ 
مَرْحَبًا 

과정은 텍스트 파일을 만들기로 시작하는 텍스트 소스 만들기. 파일이로드되면 각 행은 별도의 String 객체가되므로 다음과 같은 파일을 만들 수 있습니다.

UTF-8 형식이어야합니다. Windows에서는 메모장에서 UTF-8 파일을 만들 수 있습니다. 다른 이름으로 저장 ...을 사용하고 UTF-8 인코딩을 선택하십시오.

enter image description here

이는 MIDP 응용 프로그램에서 쉽게 읽을 수있는 형식으로 변환 할 필요가

arb.utf8 이름을 확인합니다. MIDP는 J2SE의 BufferedReader와 같은 텍스트 파일을 읽을 수있는 편리한 방법을 제공하지 않습니다. 유니 코드 지원은 바이트와 문자 사이를 변환 할 때도 문제가 될 수 있습니다. 텍스트를 읽는 가장 쉬운 방법은 DataInput.readUTF()를 사용하는 것입니다. 그러나 이것을 사용하려면 DataOutput.writeUTF()를 사용하여 텍스트를 작성해야합니다.

다음은 메모장에서 저장 한 .uft8 파일을 읽고 JAR에 들어갈 .res 파일을 만드는 간단한 J2SE 명령 줄 프로그램입니다.

import java.io.*; 
import java.util.*; 

public class TextConverter { 

    public static void main(String[] args) { 
     if (args.length == 1) { 
      String language = args[0]; 

      List<String> text = new Vector<String>(); 

      try { 
       // read text from Notepad UTF-8 file 
       InputStream in = new FileInputStream(language + ".utf8"); 
       try { 
        BufferedReader bufin = new BufferedReader(new InputStreamReader(in, "UTF-8")); 
        String s; 
        while ((s = bufin.readLine()) != null) { 
         // remove formatting character added by Notepad 
         s = s.replaceAll("\ufffe", ""); 
         text.add(s); 
        } 
       } finally { 
        in.close(); 
       } 

       // write it for easy reading in J2ME 
       OutputStream out = new FileOutputStream(language + ".res"); 
       DataOutputStream dout = new DataOutputStream(out); 
       try { 
        // first item is the number of strings 
        dout.writeShort(text.size()); 
        // then the string themselves 
        for (String s: text) { 
         dout.writeUTF(s); 
        } 
       } finally { 
        dout.close(); 
       } 
      } catch (Exception e) { 
       System.err.println("TextConverter: " + e); 
      } 
     } else { 
      System.err.println("syntax: TextConverter <language-code>"); 
     } 
    } 
} 

는 arb.res에 arb.utf8 변환과 변환 실행하려면 : 런타임에

놓습니다 JAR에서 .RES 파일을 텍스트를 사용

java TextConverter arb 

합니다. MIDP의 응용 프로그램에서

는 텍스트가이 방법으로 읽을 수 있습니다 :

public String[] loadText(String resName) throws IOException { 
    String[] text; 
    InputStream in = getClass().getResourceAsStream(resName); 
    try { 
     DataInputStream din = new DataInputStream(in); 
     int size = din.readShort(); 
     text = new String[size]; 
     for (int i = 0; i < size; i++) { 
      text[i] = din.readUTF(); 
     } 
    } finally { 
     in.close(); 
    } 
    return text; 
} 

로드와 같은 텍스트를 사용

String[] text = loadText("arb.res"); 
System.out.println("my arabic word from arb.res file ::"+text[0]+" second from arb.res file ::"+text[1]); 

희망이 당신을 도울 것입니다. 감사합니다

+0

나는 데이터베이스 floggy 내 아랍어 문자열을 저장할 수 있습니다. 왜냐하면 나는 스트림이 필요 없다거나 먼저 qurey 결과를 파일에 작성한 다음 그 work.is 맞습니까? – user1239521

+0

@ user1239521이 답이 도움이되고 아이디어가 나온다면 대답 옆에있는 눈금으로 표시하십시오 . – AbdulAziz

+0

@ Sajid Shaikh 대체품 및 목록은 j2ME에 있습니다. – user1239521