|
|
package com.util.mail;import java.io.File;import java.nio.charset.Charset;import cpdetector.io.CodepageDetectorProxy;import cpdetector.io.JChardetFacade;/** * 需要借助cpdetector jar包下载地址:http://d.download.csdn.net/down/1815149/wnjok,或者下载我的附件 */public class CharacterEnding { public static void main(String[] args) { String encoding = CharacterEnding.getFileCharacterEnding("Sty.xml"); System.out.println("encoding = " + encoding); } public static String getFileCharacterEnding(String filePath) { File file = new File(filePath); return getFileCharacterEnding(file); } public static String getFileCharacterEnding(File file) { String fileCharacterEnding = "UTF-8"; cpdetector.io.CodepageDetectorProxy detector = CodepageDetectorProxy.getInstance(); detector.add(JChardetFacade.getInstance()); Charset charset = null; try { charset = detector.detectCodepage(file.toURL()); } catch (Exception e) { e.printStackTrace(); } if (charset != null) { fileCharacterEnding = charset.name(); } return fileCharacterEnding; }}
如果用io流读文件可以使用
FileInputStream fiss = new FileInputStream(sSaveFile);InputStreamReader fis = new InputStreamReader(fiss, stringCharSet);StringBuffer sb = new StringBuffer();BufferedReader br = new BufferedReader(fis);String line = br.readLine();while(line!=null && line.length()>0){ sb.append(line); line = br.readLine();} 这样子读出的字符串就不是乱码了 |
|