我在我的應用中使用了一些阿拉伯文字。在模擬器上阿拉伯語文本很好。在設備上顯示阿拉伯文J2ME
但在設備上顯示不正確。
模擬器上它像مرحبا這一點。
但在設備上它就像مرحبا。
我的需要是這一個مرحبا。
我在我的應用中使用了一些阿拉伯文字。在模擬器上阿拉伯語文本很好。在設備上顯示阿拉伯文J2ME
但在設備上顯示不正確。
模擬器上它像مرحبا這一點。
但在設備上它就像مرحبا。
我的需要是這一個مرحبا。
一個MIDP應用程序創建的文本資源,以及如何在運行時加載它們。這種技術是unicode安全的,因此適用於所有語言。運行時代碼很小,速度很快,並且使用相對較少的內存。
創建文本源
اَللّٰهُمَّ اِنِّىْ اَسْئَلُكَ رِزْقًاوَّاسِعًاطَيِّبًامِنْ رِزْقِكَ
مَرْحَبًا
的過程與創建一個文本文件開始。當加載該文件中,每一行的單獨字符串對象,因此可以創建像一個文件:
這需要在UTF-8格式。在Windows上,您可以在記事本中創建UTF-8文件。確保使用另存爲...,然後選擇UTF-8編碼。
讓arb.utf8
這需要轉換爲可以很容易地通過MIDP應用程序可以讀取的格式的名稱。 MIDP不提供便捷的方式來讀取文本文件,如J2SE的BufferedReader。在字節和字符之間轉換時,Unicode支持也可能成爲問題。讀取文本的最簡單方法是使用DataInput.readUTF()。但要使用這個,我們需要使用DataOutput.writeUTF()寫入文本。
下面是一個簡單的J2SE的命令行程序來讀取你從記事本保存的文件.uft8,並創建一個res文件在JAR去。
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.utf8轉換爲arb.res,運行轉換器:在運行時
java TextConverter arb
使用文本
放入JAR的res文件。
在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]);
希望這會幫助你。謝謝
我有一個商店我的阿拉伯字符串數據庫floggy。因爲我認爲我不需要流或首先我寫一個文件qurey結果然後做那個work.is它是正確的 – user1239521 2012-02-29 07:26:40
@ user1239521如果這個答案幫助了你,你有了這個想法,然後用答案旁邊的答案標記問題。 – AbdulAziz 2012-02-29 07:27:36
@ Sajid Shaikh替換功能和列表在j2ME中。 – user1239521 2012-02-29 09:23:07