收录日期:2018/08/17 09:51:28 时间:2016/05/20 23:30:02 标签:J2ME
(用的是实际手机调试,模拟器上没有此问题)
一款A388,一款7210(均是香港货)
调用System.getProperty("microedition.encoding")函数
输出ISO-8859-1
这应该是系统支持的编码(我的印象里,该编码不支持中文)
而我的代码很简单
String str=new String("a水木清华");
byte[] b=str.getBytes( );
form.append(new String(b));
form.append(str);

结果输出a????,而每个汉字都变成了?,也就是ISO-8859-1中的3F
这些现象本身并不奇怪,因为ISO-8859-1本身就会这么做
奇怪的是既然该编码不支持中文,那么str也不应该能够正确输出
可是str却正确输出了!!

也就是说在内存里本来是61 3F 3F 3F的数据可以被系统正确识别?
难道构造一个String还另有蹊跷?

另外如果有大侠做过相关的实际手机调试,能不能告诉我有没有内地手机
调用System.getProperty("microedition.encoding")函数
是支持GB或者Unicode或者UTF-8或者其他包括了汉字字符集的,谢谢
--
byte[] to char[] 相互转换的时候考虑一下编码

String(byte[],encoding);

form.append(new String(b, "UTF-8"));