在J2ME程序設計過程中,在存儲記錄集、網絡傳輸數據、以及讀取資源文件中的數據時,都可能存在中文問題。
中文問題的本質是保存、傳輸中文時使用的字符編碼和讀取、獲得中文時的字符編碼不同。在J2ME中所有的手機都支持UTF-8格式的字符集。 在使用數據的時候,一般出現中文問題是在將字符串和字節數組轉換的時候產生,下面是編碼中文產生亂碼的轉換方法:
import Java.io.*;
public class Test{
/**
* 將字節數組轉換為字符串
* @param bytes 需要轉換的字節數組
* @return 轉換後的字符串
*/
public static String byte2String(byte[] bytes){
try{
ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
DataInputStream dis = new DataInputStream(bais);
String s = dis.readUTF();
//關閉流
dis.close();
bais.close();
return s;
}catch(Exception e){
return null;
}
}
/**
* 將字符串轉換為字節數組
* @param s 需要轉換的字符串
* @return 轉換後生成的字節數組
*/
public static byte[] string2Byte(String s){
try{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream bos = new DataOutputStream(baos);
bos.writeUTF(s);
byte[] bytes = baos.toByteArray();
//關閉流
bos.close();
baos.close();
return bytes;
}catch(Exception e){
return null;
}
}
}在J2ME程序設計過程中,在存儲記錄集、網絡傳輸數據、以及讀取資源文件中的數據時,都可能存在中文問題。
中文問題的本質是保存、傳輸中文時使用的字符編碼和讀取、獲得中文時的字符編碼不同。在J2ME中所有的手機都支持UTF-8格式的字符集。
在使用數據的時候,一般出現中文問題是在將字符串和字節數組轉換的時候產生,下面是編碼中文產生亂碼的轉換方法:
import Java.io.*;
public class Test{
/**
* 將字節數組轉換為字符串
* @param bytes 需要轉換的字節數組
* @return 轉換後的字符串
*/
public static String byte2String(byte[] bytes){
try{
ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
DataInputStream dis = new DataInputStream(bais);
String s = dis.readUTF();
//關閉流
dis.close();
bais.close();
return s;
}catch(Exception e){
return null;
}
}
/**
* 將字符串轉換為字節數組
* @param s 需要轉換的字符串
* @return 轉換後生成的字節數組
*/
public static byte[] string2Byte(String s){
try{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream bos = new DataOutputStream(baos);
bos.writeUTF(s);
byte[] bytes = baos.toByteArray();
//關閉流
bos.close();
baos.close();
return bytes;
}catch(Exception e){
return null;
}
}
}