客户的服务器美国的服务器,没有中文utf-8字符集,java读取的时候中文乱码。
java读取文件的方式如下:
FileUtils.readFileToString(file,fileEncode);
解决方法:
1.安装中文字符集。
2.使用第三方判断文件字符集的jar包。资源如下:juniversalchardet-1.0.3.jar .代码如下:
public static String getCharset(String path) {
File file = new File(path);
UniversalDetector detector = new UniversalDetector(null);
try(InputStream is = new FileInputStream(file)) {
byte[] bytes = new byte[1024];
int nread;
if ((nread = is.read(bytes)) > 0 && !detector.isDone()) {
detector.handleData(bytes, 0, nread);
}
} catch (Exception localException) {
System.out.println("detected code:"+localException);
}
detector.dataEnd();
String encode = detector.getDetectedCharset();
/** default UTF-8 */
if ((encode == null || encode.length() == 0)) {
encode = "UTF-8";
}
detector.reset();
return encode;
}