会计考友 发表于 2012-8-4 12:37:27

JAVA基础知识指导:java读取utf8类型的文件

源文件为utf-8格式,且里面包含中文,如:
   
    in ('133','153','180','189') then '电信'
   
    in ('130','131','132','145','155','156','183','185','186') then '联通'
   
    1,不加转码的时候中文会乱码:
   
    Java代码
   
    1.public static void main(String[] args) throws Exception {
   
    2.    File f = new File("D:/youni_insert_youni_file_transfer_ft.pl");
   
    3.    InputStreamReader insReader = new InputStreamReader(new FileInputStream(f));
   
    4.    BufferedReader bufReader = new BufferedReader(insReader);
   
    5.    String line = new String();
   
    6.    while ((line = bufReader.readLine()) != null) {
   
    7.      System.out.println(line);
   
    8.    }
   
    9.    bufReader.close();
   
    10.}
   
    public static void main(String[] args) throws Exception {
   
    File f = new File("D:/youni_insert_youni_file_transfer_ft.pl");
   
    InputStreamReader insReader = new InputStreamReader(new FileInputStream(f));
   
    BufferedReader bufReader = new BufferedReader(insReader);
   
    String line = new String();
   
    while ((line = bufReader.readLine()) != null) {
   
    System.out.println(line);
   
    }
   
    bufReader.close();
   
    }
   
    Java代码
   
    1.in ('133','153','180','189') then '鐢典俊'
   
    2.in ('130','131','132','145','155','156','183','185','186') then '鑱旈?'
   
    in ('133','153','180','189') then '鐢典俊'
   
    in ('130','131','132','145','155','156','183','185','186') then '鑱旈?'
   
    2,如果对string进行utf-8编码,某些中文加单引号会导致乱码:
   
    Java代码
   
    1.public static void main(String[] args) throws Exception {
   
    2.      //String charsetName = "UTF-8";
   
    3.      File f = new File("D:/youni_insert_youni_file_transfer_ft.pl");
   
    4.      InputStreamReader insReader = new InputStreamReader(new FileInputStream(f));
   
    5.      BufferedReader bufReader = new BufferedReader(insReader);
   
    6.      String line = new String();
   
    7.      while ((line = bufReader.readLine()) != null) {
   
    8.            System.out.println(new String(line.getBytes(),"utf-8"));
   
    9.      }
   
    10.      bufReader.close();
   
    11.    }
   
    public static void main(String[] args) throws Exception {
   
    //String charsetName = "UTF-8";
   
    File f = new File("D:/youni_insert_youni_file_transfer_ft.pl");
   
    InputStreamReader insReader = new InputStreamReader(new FileInputStream(f));
   
    BufferedReader bufReader = new BufferedReader(insReader);
   
    String line = new String();
   
    while ((line = bufReader.readLine()) != null) {
   
    System.out.println(new String(line.getBytes(),"utf-8"));
   
    }
   
    bufReader.close();
   
    }

会计考友 发表于 2012-8-4 12:37:28

JAVA基础知识指导:java读取utf8类型的文件

Java代码
   
    1.in ('133','153','180','189') then '电信'
   
    2.in ('130','131','132','145','155','156','183','185','186') then '联??'
   
    in ('133','153','180','189') then '电信'
   
    in ('130','131','132','145','155','156','183','185','186') then '联??'
   
    3,读文件时候用utf8编码读,则不会有问题了:
   
    Java代码
   
    1.public static void main(String[] args) throws Exception {
   
    2.      String charsetName = "UTF-8";
   
    3.      File f = new File("D:/youni_insert_youni_file_transfer_ft.pl");
   
    4.      InputStreamReader insReader = new InputStreamReader(new FileInputStream(f), charsetName);
   
    5.      BufferedReader bufReader = new BufferedReader(insReader);
   
    6.      String line = new String();
   
    7.      while ((line = bufReader.readLine()) != null) {
   
    8.            System.out.println(line);
   
    9.      }
   
    10.      bufReader.close();
   
    11.    }
   
    public static void main(String[] args) throws Exception {
   
    String charsetName = "UTF-8";
   
    File f = new File("D:/youni_insert_youni_file_transfer_ft.pl");
   
    InputStreamReader insReader = new InputStreamReader(new FileInputStream(f), charsetName);
   
    BufferedReader bufReader = new BufferedReader(insReader);
   
    String line = new String();
   
    while ((line = bufReader.readLine()) != null) {
   
    System.out.println(line);
   
    }
   
    bufReader.close();
   
    }
   
    Java代码
   
    1.in ('133','153','180','189') then '电信'
   
    2.in ('130','131','132','145','155','156','183','185','186') then '联通'
页: [1]
查看完整版本: JAVA基础知识指导:java读取utf8类型的文件