字符编码
九月 15th, 2008
GB2312是最早的汉字编码,只有6千多个汉字。
GBK是微软对GB2312的扩展,有2万多汉字并向下兼容GB2312.
GB18030是现行国家标准,PC平台必须支持,四字节字符空间,兼容ASCII,兼容GBK,感觉就是中国版的UTF-8。
BIG5是一个通行于台湾香港地区的繁体字编码方案。
CJK代表中日韩用到的字符集,占了Unicode的大部分(人家26个字母就搞定了)。
code page是微软对不同的编码定义的一个编号。
UTF-8是一种Unicode实现,一共用到四字节字符空间,但用1个字节编码英文字母,3个字节编码汉字,就是说如果文本全是英文的话它与ASCII没有区别,一个字符只需8位存储空间,一般汉字的话需要24位存储空间。UTF8用的不爽的人是像斯拉夫语和希腊语那样本来全部字符集也是8位就可以搞定的但在UTF-8中却被分到了高8位,于是所有的编码要用16位,足足增加了一倍。
汉字的话如果单独编码也只需要2个字节(2^16=65536个字符)就够了,但在UTF-8需要三个字节。
UTF-16是Unicode另一种实现,和UTF-8一样也是变长编码,只是他由16位起步编码,不够在加16位,因为16位已经可以覆盖大部分常用Unicode字符了,所以会用到32位的情况很少,用UTF-16汉字是用两个字节表示的。
Unicode最原始的实现是UTF-32,不像UTF-8为ASCII优化,UTF-16为包括汉字在内的BMP部分优化,UTF-32中任何字符都是四个字节的,简直直接就把Unicode标准照搬过来了,因此没有太大实用价值。
在因特网世界统一使用Unicode是必然的趋势,只是在选择具体编码的时候,当英文数据占多数的时候用UTF-8比较划算,当东亚文字包括中日韩文占多数的时候就应该用UTF-16了,期待着那一天,顺便BS一下百度还在用GB2312的状态。
用Windows批处理批量重命名文件
九月 5th, 2008
下了一堆jpg图片却被FireFox保存为html文件。Windows资源管理器自带的批量重命名功能对修改文件后缀名无能为力,TC又不会用,所以只能写脚本。不会的命令查一下http://www.ss64.com/。
@echo off&setlocal EnableDelayedExpansion
set i=1
for /f %%G in (’dir /b *.html’) do (
ren “%%G” “!i!.jpg”
set/a i+=1
)
保存为ren.bat文件,运行后把当前目录的html文件重命名为jpg。
一个Linux脚本
#!/bin/bash
for file in *.so.*; do
ln -s $file `echo $file | awk -F. ‘{ print $1″.”$2 }’`
done