彻底解决J2ME中的中文问题

在J2ME程序设计中,存储记录集、网络传输数据及读取资源文件数据时可能存在中文问题,本质是保存、传输与读取中文时字符编码不同。所有手机都支持UTF - 8字符集,中文问题常出现在字符串和字节数组转换时,文中给出了相关转换方法。

彻底解决J2ME中的中文问题

作者:陈跃峰

出自:http://blog.youkuaiyun.com/mailbomb

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;

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值