博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java自动识别用户上传的文本文件编码
阅读量:6844 次
发布时间:2019-06-26

本文共 2191 字,大约阅读时间需要 7 分钟。

原文:http://www.open-open.com/code/view/1420514359234

 

 

经常碰到用户上传的部分数据文本文件乱码问题,又不能限制用户的上传的文件编码格式(这样对客户的要求可能比较高), 只好自己想办法.  找了一部分java获取文件编码的.  

  要么就是识别错误. 要么就是只有一小段的代码,也不说具体引用了什么...我就在这里分享一下吧. 工具类就一个方法. main测试方法我就不写了.

 貌似还不能上传附件...就弄到我的资源里去吧.  

引用了.这两个jar类.

chardet.jar

cpdetector_1.0.10.jar

package com.dxx.buscredit.common.util;            import info.monitorenter.cpdetector.io.ASCIIDetector;      import info.monitorenter.cpdetector.io.CodepageDetectorProxy;      import info.monitorenter.cpdetector.io.JChardetFacade;      import info.monitorenter.cpdetector.io.ParsingDetector;      import info.monitorenter.cpdetector.io.UnicodeDetector;            import java.io.File;      import java.nio.charset.Charset;            public class FileCharsetDetector {                /**          * 利用第三方开源包cpdetector获取文件编码格式.          * @param filePath          * @return          */          public static String getFileEncode(File file) {              /**              * 
              * 1、cpDetector内置了一些常用的探测实现类,这些探测实现类的实例可以通过add方法加进来,              * 如:ParsingDetector、 JChardetFacade、ASCIIDetector、UnicodeDetector.               * 2、detector按照“谁最先返回非空的探测结果,就以该结果为准”的原则.               * 3、cpDetector是基于统计学原理的,不保证完全正确.              * 
*/ CodepageDetectorProxy detector = CodepageDetectorProxy.getInstance(); detector.add(new ParsingDetector(false)); detector.add(UnicodeDetector.getInstance()); detector.add(JChardetFacade.getInstance());//内部引用了 chardet.jar的类 detector.add(ASCIIDetector.getInstance()); Charset charset = null; try { charset = detector.detectCodepage(file.toURI().toURL()); } catch (Exception e) { e.printStackTrace(); } //默认为GBK String charsetName = "GBK"; if (charset != null) { if (charset.name().equals("US-ASCII")) { charsetName = "ISO_8859_1"; } else{ charsetName = charset.name(); } } return charsetName; } }

 

转载地址:http://hebul.baihongyu.com/

你可能感兴趣的文章
oracle修改归档日志路径
查看>>
自动化运维工具Ansible实战(七)playbook循环
查看>>
struts2标签常用
查看>>
SecureCRT 绝佳背景字体配色方案, 保护你的眼睛
查看>>
Python3中request模块访问网页以及客户端伪装
查看>>
lvm lvextend vgdisplay xfs_growfs
查看>>
中文图片验证码
查看>>
堡垒机
查看>>
puppet一键部署lnmt
查看>>
Flex 动态创建 多个曲线图/柱形图 ColumnSeries
查看>>
http中post和get的区别
查看>>
从硬盘安装ubuntu的方法
查看>>
TCPDUMP中文手册
查看>>
apache 403 forbidden 错误解决方法
查看>>
ERP实施流程-步骤
查看>>
谈Excel的一些操作
查看>>
24.NAT地址转换技术
查看>>
mahout所实现的算法
查看>>
MFC中的CListCtrl网格控件添加行
查看>>
orzdba安装与使用
查看>>