需求

产品经理要求上传文件到服务器,但是文件没有模板,文件的编码格式不定,因此不能通过指定的编码格式解析文件,否则会出现乱码。

文件编码识别
(1)UTF-8 BOM编码的文件,前3个字节转换成10进制数后分别是:-17、-69、-65。

(2)UTF-16BE BOM编码的文件,前2个字节转换成10进制数后分别是:-2、-1。

(3)UTF-16LE BOM编码的文件,前2个字节转换成10进制数后分别是:-1、-2。

因此,这三种编码格式的文件检测起来比较简单,只需要拿到文件的前三个字节,然后根据上面的规则就可以确定文件是什么编码。问题是这种检测方式只能区分UTF-8 BOM、UTF-16BE BOM和UTF-16LE BOM编码的文件,不能区分UTF-8和GBK编码的文件。

由于上传的文件只有中文和英文,在生产环境运行了一段时间,目前来看是满足要求的。比如Google的字符编码检测工具会返回WINDOWS-1252这样的编码格式,这种默认用GBK编码就可以。还有一些检测不出来的编码格式,返回null,这种也用默认的GBK就行。

Google开源Java字符编码检测工具介绍

Maven坐标如下:

<dependency><groupId>com.googlecode.juniversalchardet</groupId><artifactId>juniversalchardet</artifactId><version>1.0.3</version>
</dependency>

Google字符编码检测工具Java代码示例,目前来看检查UTF-8和GBK编码没有问题,但是其它编码存在问题,由于上传的文件只有中文和英文,因此稍微做了点兼容性处理,当编码获取错误时,默认取GBK编码。编码检测工具在生产环境运行了一段时间,目前来看没发现什么问题。

代码-检测文件的编码相关推荐

  1. 易语言取c盘文件夹中的文件被占用,易语言检测文件被哪个进程占用的代码

    易语言检测文件被哪个进程占用的代码 检测文件占用的代码 此功能需要加载贝贝吧模块6.6 .版本 2 .支持库 eAPI .程序集 窗口程序集_启动窗口 .子程序 _查询按钮_被单击 .局部变量 进程名 ...

  2. vba判断文件编码格式_VBA 把目录下所有CSV文件的编码由UTF-8转换成ANSI

    展开全部 给你编个VBS版的,但又没有文件,没有测试,请上传个文件让我试下?32313133353236313431303231363533e4b893e5b19e31333335326232以下文件 ...

  3. 代码文件的编码不统一导致的坑

    联想到discuz,ecshop发布一个新版本的系统给大家使用,会提供utf-8,gb2312版本的代码下载.所以肯定是批量转换编码出来的. 这种是转换html文件. http://blog.csdn ...

  4. 如何检测文本文件的编码/代码页

    本文翻译自:How can I detect the encoding/codepage of a text file In our application, we receive text file ...

  5. php怎么查自己的文件编码,php检测文件编码的方法示例

    关于文件编码的检测,很多人建议 mb_detect_encoding 检测,可是不知为何不成功,什么都没输出.看到有人写了个增强版,用 BOM 判断的,我果断就无视了,这东西完全不靠谱.最终根据PHP ...

  6. php 检测编码函数,自己写了一个php检测文件编码的函数

    关于文件编码的检测,百度一下一大把都是,但是确实没有能用的. 很多人建议 mb_detect_encoding 检测,可是不知为何我这不成功,什么都没输出. 看到有人写了个增强版,用 BOM 判断的, ...

  7. python 检测文件编码_[常用] 在Python中检测网页编码

    [常用] 在Python中检测网页编码 在使用Python抓取网页并进行分析时出现这个错误: UnicodeDecodeError: 'utf8' codec can't decode byte 0x ...

  8. scite自动检测文件编码

       ##########################文件开始fileDect.py############################# #encoding:utf8 # Detect fi ...

  9. Android开发之代码检测工具Lint和阿里巴巴编码规范扫描(代码检测工具)

    我们写代码很多都不规范,如何检测? 实际上AS自带检测工具了叫lint如下图: 还有一款是阿里巴巴的代码检测和AS自带的差不多如下图: 下面我们来说下这两个如何使用呢? 1.我们先说AS系统自带的吧 ...

  10. java 读取流的字符编码格式_如何使用Java代码获取文件、文件流或字符串的编码方式...

    标签: 今天通过网络资源研究了一下如何使用Java代码获取文件.文件流或字符串的编码方式,现将代码与大家分享: package com.ghj.packageoftool; import info.m ...

最新文章

  1. Vivado中TCL的使用
  2. 青少年软件编程等级考试 python-中国电子学会《全国青少年软件编程等级考试标准》升级啦!...
  3. Flask-hello程序
  4. 超级实用!如何为机器学习算法准备数据?
  5. linux中怎么删除只读变量,【Linux】【问题集锦】如何删除shell只读变量
  6. Android笔记——在布局文件中插入另一个布局文件
  7. 复习----使用链表实现栈(后进先出)及迭代
  8. Struts2之前台表单传值到后台Action方法总结
  9. Python Tkinter教程–第1部分
  10. 固高板卡mct2008调试轴回零_MCT2008-for-ges 固高所有GE运动控制卡的DEMO软件,用来测试板卡是否正常工作 matlab 238万源代码下载- www.pudn.com...
  11. 基于Zedboard和ov5642实现视频采集及VGA输出
  12. matlab读取文件xlsfinfo,Matlab读写excel文件函数
  13. postgresql源码学习(38)—— 备份还原② - do_pg_stop_backup函数
  14. Android studio 如何连接手机
  15. 段式存储、页式存储及段页式存 详解
  16. 如何做好地质旅游景区的策划规划和投资开发?
  17. 获得Windows官方映像(ISO)
  18. 安全狗入选信通院“业务安全推进计划”名单
  19. 【机器学习】机器学习30个笔试题
  20. 影响消费者行为的个人因素

热门文章

  1. linux ipk,openwrt下ipk生成过程及原理
  2. 从《华为的冬天》到AI的冬天 | 甲子光年
  3. 如何在计算机上设置禁止游戏,如何禁止玩电脑游戏 屏蔽网络游戏的方法
  4. [渝粤教育] 武汉理工大学 人文物理 参考 资料
  5. 超市扫码机器服务器系统搭建,超市用的扫码机是怎么个原理?
  6. sir模型 python_SIR传染病模型(附Python代码)
  7. Windows聚焦的图片下载
  8. 基于VC++实现的中国象棋-双人象棋游戏
  9. 普通正态分布如何转换到标准正态分布
  10. java通过SMTP发送QQ邮件(参考龙果学院)