在j2me程序设计过程中,在存储记录集、网络传输数据、以及读取资源文件中的数据时,都可能存在中文问题。
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中所有的手机都支持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;
}
}
}
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!


