文件格式都是utf-8的编码,以下代码读取的时候个别中文字符会出现“?”的乱码
象“宫”“馆”“态”等,一般都是出现在一个中文字符串的最后一个字public String readFile(String fileName) throws ReaderException{
File f=new File(getBaseMergeDir()+File.separator+fileName);
if(!f.exists()){
return "";
}
try {
Reader reader=new FileReader(f);
char[] c=new char[2048];
StringBuffer sb=new StringBuffer();
while(reader.read(c)>-1){ sb.append(c);
c=new char[2048];
}
return sb.toString().trim();
} catch (Exception e) {
throw new ReaderException(fileName+" not found");
}
}
哪个高手碰到国没有??????

解决方案 »

  1.   

    FileReader的缺省编码由平台决定,无法定制,中文系统一般是GBK。
    使用InputStreamReader可以指定编码格式。
      

  2.   

    楼主既然知道
    那当然要使InputStreamReader了
    楼主可以按照我的方法,如下:
    InputStreamReader  read = new InputStreamReader (new FileInputStream(文件路径),编码格式);
    BufferedReader br = new BufferedReader(read);
    最后
    br.readLine();
    即可~