我试验了,只有 “UTF-8“好使 ,其他全为乱码,不过如果用 String(data,"UTF-8") ,那么读取到某一非特定的页时就会出现:然后就不显示了 java.lang.RuntimeException: IOException reading reader invalid first byte 10101101 at com.sun.cldc.i18n.Helper.byteToCharArray(+228) at java.lang.String.<init>(+9) at java.lang.String.<init>(+9) at testbookpalm2.Main.loadText(+70) at testbookpalm2.Main.commandAction(+53) at javax.microedition.lcdui.Display$DisplayAccessor.commandAction(+282) at javax.microedition.lcdui.Display$DisplayManagerImpl.commandAction(+10) at com.sun.midp.lcdui.DefaultEventHandler.commandEvent(+68) at com.sun.midp.lcdui.AutomatedEventHandler.commandEvent(+47) at com.sun.midp.lcdui.DefaultEventHandler$QueuedEventHandler.run(+250)请问谁知道这咋回事
试试
String str = new String(data,"gb2312");String str = new String(data,"utf-8");String str = new String(data,"utf-16");等等。
因为英文只占一个字节,所以没有问题
中文占两个字节,所以会产生乱码
你按照字符读取就没问题了
如下package io;import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;public class TestSystemOut {
public static void main(String[] args){
try {
FileReader f = new FileReader(new File("D:\\1.txt"));
BufferedReader br = new BufferedReader(f);
String line = null;
while((line = br.readLine()) != null){
System.out.println(line);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}}
什么编码的?我也很想知道,就是正常Windows记事本那种编码
/////////////////////////////////////////////////////////////////////
String str = new String(data,"gb2312");
那你就这样试试
java.lang.RuntimeException: IOException reading reader invalid first byte 10101101
at com.sun.cldc.i18n.Helper.byteToCharArray(+228)
at java.lang.String.<init>(+9)
at java.lang.String.<init>(+9)
at testbookpalm2.Main.loadText(+70)
at testbookpalm2.Main.commandAction(+53)
at javax.microedition.lcdui.Display$DisplayAccessor.commandAction(+282)
at javax.microedition.lcdui.Display$DisplayManagerImpl.commandAction(+10)
at com.sun.midp.lcdui.DefaultEventHandler.commandEvent(+68)
at com.sun.midp.lcdui.AutomatedEventHandler.commandEvent(+47)
at com.sun.midp.lcdui.DefaultEventHandler$QueuedEventHandler.run(+250)请问谁知道这咋回事