当前页面位置: » 丰搜网 » 文档中心 » 详细内容
j2me中文问题的解决方案
服务器端
int i = dis.readint();
byte b = dis.readbyte();
string s = dis.readutf();
rms持久性存储的中文问题
由于rms中的数据存储都是按照byte[]的格式存储的,因此我们需要稍微变化一下,但是基本上还是走utf-8的思路。
写入数据
bytearrayoutputstream baos = new bytearrayoutputstream();
dataoutputstream dos = new dataoutputstream(baos);
dos.writeutf(mystring);
byte[] data = baos.tobytearray();
rs.addrecord(data,0,data.length);
读出数据
byte[] data = rs.getrecord(index);
bytearrayinputstream bais = new bytearrayinputstream(data);
datainputstream dis = new datainputstream(bais);
string mystring = dis.readutf(); 读取中文文件的问题
在midp中并不支持文件系统,但是我们可以读取jar包中的文件。如果文件中含有中文,那么我们需要进行一些特殊的处理,首先我们使用ue或者notepad工具把相关的文件转换文utf-8格式编码。我们在读取文件的时候需要进行如下的简单处理。下面是处理函数。
public string readfromfile(string filename)
{
string returnstring = null;
inputstream is = getclass().getresourceasstream(filename);
if (is != null)
{
bytearrayoutputstream baos = new bytearrayoutputstream();
int ch = 0;
try
{
while ((ch = is.read()) != -1)
{
baos.write(ch);
}
byte[] data = baos.tobytearray();
returnstring = new string(data, "utf-8");
is.close();
baos.close(); } catch (ioexception e)
{
e.printstacktrace();
}
}
return returnstring;
}