代码-检测文件的编码
需求
产品经理要求上传文件到服务器,但是文件没有模板,文件的编码格式不定,因此不能通过指定的编码格式解析文件,否则会出现乱码。
文件编码识别
(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编码。编码检测工具在生产环境运行了一段时间,目前来看没发现什么问题。
代码-检测文件的编码相关推荐
- 易语言取c盘文件夹中的文件被占用,易语言检测文件被哪个进程占用的代码
易语言检测文件被哪个进程占用的代码 检测文件占用的代码 此功能需要加载贝贝吧模块6.6 .版本 2 .支持库 eAPI .程序集 窗口程序集_启动窗口 .子程序 _查询按钮_被单击 .局部变量 进程名 ...
- vba判断文件编码格式_VBA 把目录下所有CSV文件的编码由UTF-8转换成ANSI
展开全部 给你编个VBS版的,但又没有文件,没有测试,请上传个文件让我试下?32313133353236313431303231363533e4b893e5b19e31333335326232以下文件 ...
- 代码文件的编码不统一导致的坑
联想到discuz,ecshop发布一个新版本的系统给大家使用,会提供utf-8,gb2312版本的代码下载.所以肯定是批量转换编码出来的. 这种是转换html文件. http://blog.csdn ...
- 如何检测文本文件的编码/代码页
本文翻译自:How can I detect the encoding/codepage of a text file In our application, we receive text file ...
- php怎么查自己的文件编码,php检测文件编码的方法示例
关于文件编码的检测,很多人建议 mb_detect_encoding 检测,可是不知为何不成功,什么都没输出.看到有人写了个增强版,用 BOM 判断的,我果断就无视了,这东西完全不靠谱.最终根据PHP ...
- php 检测编码函数,自己写了一个php检测文件编码的函数
关于文件编码的检测,百度一下一大把都是,但是确实没有能用的. 很多人建议 mb_detect_encoding 检测,可是不知为何我这不成功,什么都没输出. 看到有人写了个增强版,用 BOM 判断的, ...
- python 检测文件编码_[常用] 在Python中检测网页编码
[常用] 在Python中检测网页编码 在使用Python抓取网页并进行分析时出现这个错误: UnicodeDecodeError: 'utf8' codec can't decode byte 0x ...
- scite自动检测文件编码
##########################文件开始fileDect.py############################# #encoding:utf8 # Detect fi ...
- Android开发之代码检测工具Lint和阿里巴巴编码规范扫描(代码检测工具)
我们写代码很多都不规范,如何检测? 实际上AS自带检测工具了叫lint如下图: 还有一款是阿里巴巴的代码检测和AS自带的差不多如下图: 下面我们来说下这两个如何使用呢? 1.我们先说AS系统自带的吧 ...
- java 读取流的字符编码格式_如何使用Java代码获取文件、文件流或字符串的编码方式...
标签: 今天通过网络资源研究了一下如何使用Java代码获取文件.文件流或字符串的编码方式,现将代码与大家分享: package com.ghj.packageoftool; import info.m ...
最新文章
- Vivado中TCL的使用
- 青少年软件编程等级考试 python-中国电子学会《全国青少年软件编程等级考试标准》升级啦!...
- Flask-hello程序
- 超级实用!如何为机器学习算法准备数据?
- linux中怎么删除只读变量,【Linux】【问题集锦】如何删除shell只读变量
- Android笔记——在布局文件中插入另一个布局文件
- 复习----使用链表实现栈(后进先出)及迭代
- Struts2之前台表单传值到后台Action方法总结
- Python Tkinter教程–第1部分
- 固高板卡mct2008调试轴回零_MCT2008-for-ges 固高所有GE运动控制卡的DEMO软件,用来测试板卡是否正常工作 matlab 238万源代码下载- www.pudn.com...
- 基于Zedboard和ov5642实现视频采集及VGA输出
- matlab读取文件xlsfinfo,Matlab读写excel文件函数
- postgresql源码学习(38)—— 备份还原② - do_pg_stop_backup函数
- Android studio 如何连接手机
- 段式存储、页式存储及段页式存 详解
- 如何做好地质旅游景区的策划规划和投资开发?
- 获得Windows官方映像(ISO)
- 安全狗入选信通院“业务安全推进计划”名单
- 【机器学习】机器学习30个笔试题
- 影响消费者行为的个人因素
热门文章
- linux ipk,openwrt下ipk生成过程及原理
- 从《华为的冬天》到AI的冬天 | 甲子光年
- 如何在计算机上设置禁止游戏,如何禁止玩电脑游戏 屏蔽网络游戏的方法
- [渝粤教育] 武汉理工大学 人文物理 参考 资料
- 超市扫码机器服务器系统搭建,超市用的扫码机是怎么个原理?
- sir模型 python_SIR传染病模型(附Python代码)
- Windows聚焦的图片下载
- 基于VC++实现的中国象棋-双人象棋游戏
- 普通正态分布如何转换到标准正态分布
- java通过SMTP发送QQ邮件(参考龙果学院)