File file = new File("D:/aa.cer");
InputStreamReader isr;isr = new InputStreamReader(new FileInputStream(file),"utf-8");
String line=null;
while((line=bf.readLine())!=null){
    System.out.print(line);
}
编码设置过还是乱码,求解

解决方案 »

  1.   

    File file = new File("D:/aa.cer");
    FileReader fr=null; try {
    fr = new FileReader(file);
    char[] temp=new char[(int) file.length()];
    fr.read(temp);
    fr.close();
    System.out.println(new String(temp));
    } catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }如果中文乱码的话 我也无能为力  不过英文的话这个绝对不会乱码
      

  2.   

    你确定你的D:/aa.cer文件时utf-8编码的吗?
      

  3.   


    notepad打开以后,文件->保存为->就可以看到编码
      

  4.   

    可以测试文件的编码,然后根据编码来打开文件的:http://blog.csdn.net/wula0010/article/details/6862696
      

  5.   

    分别调用下面的两个方法,看看输出什么public static void readGBKCodingFile(String fileName) {//读取GBK文件的内容
    BufferedReader br = null;
    try {
    br = new BufferedReader(new InputStreamReader(new FileInputStream(
    fileName), "gbk"));
    String line = null;
    while ((line = br.readLine()) != null) {
    System.out.println(line);
    }
    } catch (Exception e) {
    } finally {
    try {
    if (br != null)
    br.close();
    } catch (IOException e) {
    }
    }
    }


    public static void readUTFCodingFile(String fileName) {//读取UTF-8文件的内容
    BufferedReader br = null;
    try {
    br = new BufferedReader(new InputStreamReader(new FileInputStream(
    fileName), "utf-8"));
    String line = null;
    while ((line = br.readLine()) != null) {
    System.out.println(line);
    }
    } catch (Exception e) {
    } finally {
    try {
    if (br != null)
    br.close();
    } catch (IOException e) {
    }
    }
    }
      

  6.   


    你想转化文件格式,试试下面的两个方法
    public static void convertGBKFileToUTFFile(String srcFileName, String destFileName) {//把GBK文件转换为UTF文件
    BufferedReader br = null;
    ;
    BufferedWriter bw = null;
    try {
    br = new BufferedReader(new InputStreamReader(new FileInputStream(
    srcFileName), "gbk"));
    bw = new BufferedWriter(new OutputStreamWriter(
    new FileOutputStream(destFileName), "UTF-8"));
    String line = null;
    while ((line = br.readLine()) != null) {
    bw.write(line);
    bw.newLine();
    }
    } catch (Exception e) {
    } finally {
    try {
    if (br != null)
    br.close();
    if (bw != null)
    bw.close();
    } catch (IOException e) {
    }
    }
    }

    public static void convertUTFFileToGBKFile(String srcFileName, String destFileName) {//把GBK文件转换为UTF文件
    BufferedReader br = null;
    ;
    BufferedWriter bw = null;
    try {
    br = new BufferedReader(new InputStreamReader(new FileInputStream(
    srcFileName), "utf-8"));
    bw = new BufferedWriter(new OutputStreamWriter(
    new FileOutputStream(destFileName), "gbk"));
    String line = null;
    while ((line = br.readLine()) != null) {
    bw.write(line);
    bw.newLine();
    }
    } catch (Exception e) {
    } finally {
    try {
    if (br != null)
    br.close();
    if (bw != null)
    bw.close();
    } catch (IOException e) {
    }
    }
    }
      

  7.   


    public class TestFileCodingConvert {
    public static void main(String[] args) throws IOException {
    test();
    }
    public static void test(){//如果first.txt是GBK编码的文件,将会输出正常的4段信息
    convertGBKFileToUTFFile("c:/first.txt", "c:/second.txt");
    readGBKCodingFile("c:/first.txt");
    readUTFCodingFile("c:/second.txt");

    convertUTFFileToGBKFile("c:/second.txt", "c:/third.txt");
    readGBKCodingFile("c:/third.txt");
    readUTFCodingFile("c:/second.txt");
    }

    public static void convertGBKFileToUTFFile(String srcFileName, String destFileName) {//把GBK文件转换为UTF文件
    BufferedReader br = null;
    BufferedWriter bw = null;
    try {
    br = new BufferedReader(new InputStreamReader(new FileInputStream(
    srcFileName), "gbk"));
    bw = new BufferedWriter(new OutputStreamWriter(
    new FileOutputStream(destFileName), "UTF-8"));
    String line = null;
    while ((line = br.readLine()) != null) {
    bw.write(line);
    bw.newLine();
    }
    } catch (Exception e) {
    } finally {
    try {
    if (br != null)
    br.close();
    if (bw != null)
    bw.close();
    } catch (IOException e) {
    }
    }
    }

    public static void convertUTFFileToGBKFile(String srcFileName, String destFileName) {//把GBK文件转换为UTF文件
    BufferedReader br = null;
    ;
    BufferedWriter bw = null;
    try {
    br = new BufferedReader(new InputStreamReader(new FileInputStream(
    srcFileName), "utf-8"));
    bw = new BufferedWriter(new OutputStreamWriter(
    new FileOutputStream(destFileName), "gbk"));
    String line = null;
    while ((line = br.readLine()) != null) {
    bw.write(line);
    bw.newLine();
    }
    } catch (Exception e) {
    } finally {
    try {
    if (br != null)
    br.close();
    if (bw != null)
    bw.close();
    } catch (IOException e) {
    }
    }
    }



    public static void readGBKCodingFile(String fileName) {//读取GBK文件的内容
    BufferedReader br = null;
    try {
    br = new BufferedReader(new InputStreamReader(new FileInputStream(
    fileName), "gbk"));
    String line = null;
    while ((line = br.readLine()) != null) {
    System.out.println(line);
    }
    } catch (Exception e) {
    } finally {
    try {
    if (br != null)
    br.close();
    } catch (IOException e) {
    }
    }
    }


    public static void readUTFCodingFile(String fileName) {//读取UTF-8文件的内容
    BufferedReader br = null;
    try {
    br = new BufferedReader(new InputStreamReader(new FileInputStream(
    fileName), "utf-8"));
    String line = null;
    while ((line = br.readLine()) != null) {
    System.out.println(line);
    }
    } catch (Exception e) {
    } finally {
    try {
    if (br != null)
    br.close();
    } catch (IOException e) {
    }
    }
    }
    }
      

  8.   

    都是乱码,utf-8 gbk都是乱码的
      

  9.   


    这样还是乱码,获取的编码是windows-1252这个
      

  10.   

    读取中文要用FileReader字符流File file = new File("D:/aa.cer");
    FileReader fr;
     
    fr = new FileReader(new InputStreamReader(new FileInputStream(file));
    String line=null;
    while((line=fr.readLine())!=null){
        System.out.print(line);
    }
      

  11.   

    还是不行的,而且fr = new FileReader(new InputStreamReader(new FileInputStream(file));
    没有这样的写法吧,继续求解
      

  12.   

    br=new BufferedReader(new FileReader(url))
    String s=br.readLine()这样至少我是不会乱码
      

  13.   


    现在读出来就是乱码..获取的文件windows-1252是这个,也不知道怎么解决了,弄来弄去还是乱码的
      

  14.   

    纯文本文档bufferredreader 别的一般都用FileInputStream
      

  15.   

    不是文本文档,是个证书文件,FileInputStream用fileReader也试过了,就是不能解决的
      

  16.   


    證書文件裡面存的不是字符串,讀出來會亂碼的,直接讀出byte數組就可以了
      

  17.   

    我试过了,读取byte然后在转中文的,结果还是不行的,还是我转的有问题的,暂时也没解决的
      

  18.   

    是文本文件么?证书文件...是不是加密了所以乱码?先用记事本或者UE,editplus等文本编辑工具看打开是否乱码,如果不是乱码,用另存为查看文件编码,然后代码换成相应编码,如果是乱码的话,那估计就是加密了.
      

  19.   

    文件是不是用DataOutput写进去的?里面是一堆2进制数据。