WEB服务器为windows 2000 Server、APACHE+TOMCAT、SERVLET
CLIENT使用是WINDOWSXP+JBUILBDER8+NOKIA7210模拟器。
WEB服务器为windows 2000 Server、APACHE+TOMCAT、SERVLET
CLIENT使用是WINDOWSXP+JBUILBDER8+NOKIA7210模拟器。
MIDlet与SERVlet之间一般是用UTF-8编码进行传送,所以在传送时应该用UTF-8字符集将Unicode字符流转换为字节流。并且MIDlet与SERVlet之间的编码方式应保持一致,这样中文信息才能被正确地处理,或才能在无线设备上正确的显示出来。
r60600
我刚来看Java,觉得老大你的文章写得不错,可是这句话是不是有点误人子弟啊~~UTF-8就是专门手机这种嵌入式设备的新的编码法,他的特点是
UTF-8不是在Wireless Industry兴起之前早就有了么,这句话不知道您从哪里得知的,如果确有其事,希望不吝赐教!
Regards
kcome
由于项目上的訽因~我不能采用readUTF方法读去资源文件,.properties所以只能这样读取~
public void getResBundle() {
Vector resourcesVector = new Vector();
ByteArrayOutputStream out = null;
InputStream in = null;
try {
out = new ByteArrayOutputStream();
int c;
int index = 1;
in = getClass().getResourceAsStream("/test");
while ((c = in.read()) != -1) {
if (c == '\n' || c == '\r') {
String s = null;
try {
s = new String(out.toByteArray(), "utf-8");
} catch(Exception e) {
e.printStackTrace();
}
int i = s.indexOf('=');
if (i != -1) {
System.out.println(s.substring(0, i));
System.out.println(String.valueOf(index));
if (s.substring(0, i).equals(String.valueOf(index))) {
String value = s.substring(i + 1).trim();
value = value.replace('#','\n');
System.out.println("value "+ value);
resourcesVector.addElement(value);
index++;
}
}
out.reset();
} else {
out.write(c);
}
}
if (out != null) {
out.close();
}
if (in != null) {
in.close();
}
} catch(Exception e) {
e.printStackTrace();
}
resources = new String[resourcesVector.size()];
resourcesVector.copyInto(resources);
}
资源文件是UTF-8写的~但是现在发生了一件很有趣的事情~在WTK模拟器下面可以正常运行(模拟器默认编码设置为UTF-8),但是在NOKIA6600上面运行根本不行,刚打开就被关掉,(怎么可以看到手机上的日志呢?)~~苦闷中~
看了你们的方法,用在jad上还是不行,有没有能说的详细一点的呀,老大们。
我用的是WTK,另外MANIFEST.MF时候需要改动啊。
Thanks in advance,
Seabird
中文的问题还有很多呀,现在只要静态的中文信息,或者只要从源头是UNICODE的都好办,转换来转换去,手机都支持,但是如果从流里面读出来的数据开始是GB码的话,好像不管怎么转换都转换不到UNICODE,另外在模拟器上是可以转换到UNICODE或者UTF8的,但手机上不行,不知道是手机不支持还是其他訽因;我只是看到象OPERA能显示中文,他直接从WEB上获取信息的,大部分数据都不是UTF8,不知道他实现的訽理是什么?我从手机上调试的结果收到的GB不管怎么转换都是GB,如果把他强制转换成UTF8,他会在GB码的基础上进行转换,所以转换出来的结果是错的,但在模拟器下面就是OK的,我现在有点儿怀疑OPERA是自己带了GB到UNICODE的字库,不知道是不是这样?
Why is UTF-8 suitable for Chinese
locale? By using 3 or 4 bytes for
each chinese charater, it's taking
more space than unicode.
是这个样子的,我想。GB<-->Unicode的数据库并不大,做在Opera中完全是有可能,而且不消耗资源的。我现在有点儿怀疑OPERA是自己带了GB到UNICODE的字库,不知道是不是这样?
至于楼上的sipingliu,我还是蛮统一的,虽然UTF-8蛮标准的,满足了Unix下面使用Unicode的需求,可是它反过来反而不适合移动设备,因为占用空间比较大,所以?_?_
还是Unicode/UCS-2/ISO10646好了,我比较喜欢这一个:)
BestRegards
hoolee
我是在WML中写如中文,Openwave显示乱码,使用NMIT4.1配置S40SDK,也是显示乱码。请教如何解决?
我也是遇到同样的问题,在jad文件里面写中文,并且将文件保持为UTF-8编码,在下载的时候出现乱码。Originally Posted by seabird_2000
谢谢
using antenna or j2mopolish ant task to deal with your jad or manifest files, also design your application to use utf8 from the very beginning, this helps a lot, trust me.