J2ME里怎么得到一个汉字的区位码?
原来做过一个桌面JAVA程序,里面需要用到汉字的区位码,网上搜了一些文章,知道要用到一些编码转换,把想处理的字符串用.getBytes()方法获取到编码,然后对高低位字节分别作简单的运算就得到了区码位码。
可是当把这个程序移植到J2ME上时就有了问题,问题在于通过getBytes()得到的数组内容不一样。在模拟器上可以正确运行,但在真机上(我用的NOKIA6300)显示出的内容就跟模拟器上不一样,因此也无法得到区位码
可以就拿这个简短的程序做个实验:
当它在模拟器上运行时,显示的值是-73 -57; 而在真机上运行时却只有一个63
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Form;
import javax.microedition.midlet.MIDlet;
import javax.microedition.midlet.MIDletStateChangeException;
public class JustATest extends MIDlet {
public JustATest() {
// TODO Auto-generated constructor stub
}
protected void destroyApp(boolean unconditional)
throws MIDletStateChangeException {
// TODO Auto-generated method stub
}
protected void pauseApp() {
// TODO Auto-generated method stub
}
protected void startApp() throws MIDletStateChangeException {
// TODO Auto-generated method stub
Form form = new Form("Test");
String s = "非";
byte[] b = s.getBytes();
form.append("s.getBytes() = :");
for (int i=0; i<b.length; i++) {
form.append(Integer.toString(b[i]));
}
Display.getDisplay(this).setCurrent(form);
}
}
我想知道到底真机上用什么办法才能获取到汉字的区位码值?比如对于这个“非”字,谁能告诉我用怎样的编码转换才能让我获得跟在PC上一样的 -73 -57这两个值?