关于编码的几个小经验

1、adodb.stream的charset并没有转换编码, 只是改变读入写出的方式。你如果用stream读取一段文件,改变charset,然后保存,实际上编码没有任何变化;正确的方式是改变charset,read,然后savetofile

2、关于xml的encoding选项。xml默认读取的是utf-8,在有<?xml version='1.0' encoding=....>时,程序会改变成encoding读取的方式。所以,如果你的xml文件不是用utf-8保存,一定要在encoding里写清楚,否则容易错误。xml也会尝试以unicode方式读取文件,不过我想没几个人敢用unicode保存数据把,哼哼。

3、关于xmlhttp抓取网页乱码。xmlhttp默认是按照utf-8抓取网页,所以对于csdn这样utf-8的网页来说,抓取正常。但是国内大部分网站都是采用gb2312编码,因而容易出现乱码。解决的办法是用adodb.stream转码。

4、2个关于编码导致的莫名其妙问题。a、对于xmlhttp抓取的gb2312页面,若直接在<textarea>内显示responsebody,容易导致页面僵死。b、非ascii或者gb2312的字符串直接用fo保存,会显示文件错误而不是编码错误,调试时经常被骗到死。c、netant不能读取unicode的lst文件,这让人非常不爽。

5、关于自动GB和Big5识别。Big5和Gb都是2字节编码,但是二者的编码范围略有不同,GB2312首字节在81-FE之间,尾字节40-FE之间,剔除XX7F一条线。GBK首字节在OXAO-OXFE之间,二字节在OX40-OX7E和OXA1-OXFE之间。通过在文本内对比编码范围,可以粗略判断编码类型。

6、window记事本,editplus等默认是以ascii方式保存文本文件,这是文件头部是没有编码说明的,二进制打开直接就是内容。然而以unicod,utf8方式保存时,前面会有一个直接的编码说明,这个字节在记事本下是不可见的,但是在adodb.stream等二进制工具读取时,会一并load,如果不注意,容易有些小麻烦。

7、在access数据库中,如果字段储存有日文的片假名,使用like或者instr查找会出现错误,哈哈哈。解决办法是使用bin方式储存,而不是txt方式储存日文。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值