用asp实现检测文件编码
最近,在搞这个东西,网上也找不到asp相关的,如果有人很早弄出来了,也不要笑话偶;费了好久,总算搞定;
原理:用stream对象预读文件的头两个字节,分析判断出utf-8,unicode,ANSI(简体中文操作系统,即gb2312)编码
相关资料:
ANSI: 无格式定义;
Unicode: 前两个字节为FFFE;
Unicode big endian: 前两字节为FEFF;
UTF-8: 前两字节为EFBB;
function checkcode(path)
set objstream=server.createobject("adodb.stream")
objstream.Type=1
objstream.mode=3
objstream.open
objstream.Position=0
objstream.loadfromfile path
bintou=objstream.read(2)
If AscB(MidB(bintou,1,1))=&HEF And AscB(MidB(bintou,2,1))=&HBB Then
checkcoder="utf-8"
ElseIf AscB(MidB(bintou,1,1))=&HFF And AscB(MidB(bintou,2,1))=&HFE Then
checkcode="unicode"
Else
checkcode="gb2312"
End If
objstream.close
set objstream=nothing
end function
补充:
谢小雨提醒,先前的简直是胡扯;ANSI的本地编码,都是各国自己定义的,没有固定的文件头格式,在大陆中文操作系统下,是可读的gb2312,在其他语言的系统下,就是乱码,所以这部分没必要再详细区分
得到文件编码,stream流就能按照需要的编码打开,就不会乱码了
相关推荐
-
用asp实现检测文件编码
最近,在搞这个东西,网上也找不到asp相关的,如果有人很早弄出来了,也不要笑话偶:费了好久,总算搞定: 原理:用stream对象预读文件的头两个字节,分析判断出utf-8,unicode,ANSI(简体中文操作系统,即gb2312)编码 相关资料: ANSI: 无格式定义: Unicode: 前两个字节为FFFE: Unicode big endian: 前两字节为FEFF: UTF-8: 前两字节为EFBB: 复制代码 代码如下: function checkcode(path)
-
自己写了一个php检测文件编码的函数
关于文件编码的检测,百度一下一大把都是,但是确实没有能用的. 很多人建议 mb_detect_encoding 检测,可是不知为何我这不成功,什么都没输出. 看到有人写了个增强版,用 BOM 判断的,我果断就无视了,这东西完全不靠谱. 最终根据PHP手册里 mb_detect_encoding 函数下方的例子,自己写了一个检测函数, 还包括自动检测编码并按指点编码读取文件的函数. 源码献上,不喜勿喷. 网上的方法我试过没用才写的,说不定环境不一样导致的. 所以万一没用,也别喷我,我只是共享想思路
-
php检测文件编码的方法示例
关于文件编码的检测,百度一下一大把都是,但是确实没有能用的.很多人建议 mb_detect_encoding 检测,可是不知为何我这不成功,什么都没输出.看到有人写了个增强版,用 BOM 判断的,我果断就无视了,这东西完全不靠谱.最终根据PHP手册里 mb_detect_encoding 函数下方的例子,自己写了一个检测函数,还包括自动检测编码并按指点编码读取文件的函数.源码献上. 复制代码 代码如下: <?php /*** 检测文件编码 * @param string $file 文件路径*
-
ASP生成静态文件编码为UTF-8格式的HTML文件
一般我们在ASP环境下,运行动生静操作时都用到的是FSO,他是专门对文件进行操作的一个组件,他FSO的编码属性只有三种,系统默认,Unicode,ASCII,并没有我们要的utf-8,所以一般中文系统上使用FSO组件生成的文件都是gb2312格式的了,即便您在网页内写上charset="utf-8"也是没用的 要生成utf-8格式的文件,ASP环境下我们用 ADODB.Stream代替FSO读写utf-8文件,因为,ADODB.Stream,有一个CharSet 属性,可以让您定义要打
-
ASP如何检测某文件夹是否存在,不存在则自动创建
直接给大家分享一下我们测试正常可以使用的代码,并且支持多级目录创建 代码一 Function CreateMultiFolder(ByVal CFolder) Dim objFSO, PhCreateFolder, CreateFolderArray, CreateFolder Dim i, ii, CreateFolderSub, PhCreateFolderSub, BlInfo BlInfo = False CreateFolder = CFolder On Error Resume Ne
-
php实现文件编码批量转换
有些问题,不能重复转,比如gbk转到utf8,然后有在转成utf8,这样会乱码,我本来试图在转换之前去检测编码的,貌似失败了.我特意试了一个文件,我检测它是是否是gbk或者是utf-8,都返回true.这就不懂了. 复制代码 代码如下: <?php/** * 转换文件编码 * 依赖的扩展filesystem 和 mbstring * @example * <pre> * include_once 'ConvertEncode.php'; * $convert = new ConvertE
-
Python实现检测文件MD5值的方法示例
本文实例讲述了Python实现检测文件MD5值的方法.分享给大家供大家参考,具体如下: 前面介绍过Python计算文件md5值的方法,这里分析一下Python检测文件MD5值的另一种实现方法. 概述: MD5(单向散列算法)的全称是Message-Digest Algorithm 5(信息-摘要算法),经MD2.MD3和MD4发展而来.MD5算法的使用不需要支付任何版权费用. 实现代码: #python 检测文件MD5值 #python version 2.6 import hashlib im
-
使用python批量转换文件编码为UTF-8的实现
由于这两天换了IDE,在导入以前的工程的时候发现了一个大问题,由于以前脑残的我不知道改编码方式,导致出现了大量的GBK,这就很难受,要是一个两个还好说,可是这么多要是一个一个的改我会觉得现在的我比以前还脑残,于是乎,我就想用python批量的修改一下,然后就产生了这篇文章,其中好多不足的地方还请大佬指导 本来一开始的思路还是比较清晰,觉得也比较简单,天真的认为用GBK的方式读取出文件内容,然后UTF8写入就好了,可是在实际的操作中我发现我就是太天真了,出现了大量的问题,比如说: 怎么查看文件的编
-
ASP和PHP文件操作速度的对比
最近一个项目中,有一个读取某个文件夹下所有文件的功能.使用了ThinkPHP + layui,本地测试没有问题,到客户哪里发现速度奇慢,需要10秒以上才能读取完毕. 经沟通发现一个文件夹有1000+ 个文件,客户之前有一套asp的老系统,1000多个 文件也能实现秒开... 一时竟然没有头绪,难道 PHP 不如 ASP快 ??因为项目中代码太多,编写单独的代码测试.files/1000目录存放了 1428个文件测试. test.asp的源码如下: set fso = server.createo
-
Python批量将csv文件编码方式转换为UTF-8的实战记录
当我们用pandas是操作CSV文件的时候,常常会因为编码问题出现报错. pandas_libs\parsers.pyx in pandas._libs.parsers.TextReader.read() pandas_libs\parsers.pyx in pandas._libs.parsers.TextReader._read_low_memory() pandas_libs\parsers.pyx in pandas._libs.parsers.TextReader._read_rows
随机推荐
- 详解AngularJS中$http缓存以及处理多个$http请求的方法
- oracle逻辑结构分析
- WebService的用户控制方式与加密算法分类的整理
- python文件操作相关知识点总结整理
- Angular2环境搭建具体操作步骤(推荐)
- js动态改变select选择变更option的index值示例
- Angularjs---项目搭建图文教程
- 实例解析Java日期格式工具类DateUtil.java
- 在VMWare下LINUX中安装VMTool及共享文件夹
- js判断文本框剩余可输入字数的方法
- js轮播图的插件化封装详解
- 关于PHP session 存储方式的详细介绍
- 如何写JS数组sort的比较函数
- VBScript使用ADSI为IIS批量添加屏蔽或允许访问的IP
- python进程管理工具supervisor的安装与使用教程
- jquery判断复选框选中状态以及区分attr和prop
- 如何解决IONIC页面底部被遮住无法向上滚动问题
- 教你用Python脚本快速为iOS10生成图标和截屏
- 局域网中工作组和域的差别
- Android Studio3.0.1填坑笔记