PostgreSQL 数据库的编码为 UTF8(在 PostgreSQL 里 UNICODE 是 UTF8 的别名,二者要表达的意义是一样的),当往数据表的 varchar 字段里插入字符串的时候,遇到编码错误:
test=# insert into bb values (E'\x80\x02]q\x01(U\x01aU\x06\xe5\x93\x88\xe5\x93\x88q\x02e.');
ERROR: invalid byte sequence for encoding "UTF8": 0x80
HINT: This error can also happen if the byte sequence does not match the encoding expected by the server, which is controlled by "client_encoding".
为了理解造成这个错误的原因,我和小蔡花了差不多一个小时在这上面,从这个错误的字面意义上理解,是在以 UTF8 编码存储这个字符串的时候,遇到了编码错误,其实类似这样的编码错误在使用 Python 进行文本解析做编解码时会经常遇到,但又通常忽略之。
到现在为止我用过三家的虚拟主机,积累了一点点的经验教训,我想这丁点东西对刚接触虚拟主机的兄弟们可能会有一些用处。
我用的第一个虚拟主机是51boo.com,这是当时国内号称唯一支持Django,有SSH的虚拟主机,兴高采烈的花了199买了一年的服务,没成想只用了两个月51boo.com就销声匿迹了,于是我的第一个虚拟主机就这样灰飞烟灭了。
前一阵子有网友告诉我我两年前写的从百度下载歌曲的脚本不工作了,原因呢是百度修改了歌曲 URL 的加密算法,嗯,我是挺久没有使用过这个脚本了,最近也比较忙,今天花了点时间看了一下,对脚本做了一下更新,功能与之前没有任何的改动,只是修改了解析歌曲 URL 的部分,让它现在可以工作了。
之前最新的代码放在了啄木鸟社区的 SVN 仓库,google code 只有一个比较老的版本,不过这次把代码提交到了google code,以后如果再有更新的话也都会提交到 google code 去。
项目地址是:http://code.google.com/p/getsong/,可以从 SVN 仓库中 checkout 最新的代码:
svn checkout http://getsong.googlecode.com/svn/trunk/ getsong
或者下载目前最新的可工作版本:http://getsong.googlecode.com/files/getsong.tar.gz
很不幸,我又要给 blog 搬家了,虽然我很少写 blog。
之前的 blog.archnotes.com 是放在 Hostmonster 的共享虚拟主机上,但是前不久 Hostmonster 在没有提前通知我的情况下就停止了我的账号,这让我很恼火,同时也对他们失去了信心。十一期间了买了
Linode 的 VPS,干脆就借此机会把 blog 也迁到
Linode 去好了,但因为之前的域名(archnotes.com)是购买 Hostmonster 的服务时免费赠送的,没有办法迁出来,现在成了一个只能在 Hostmonster 使用的“死域名",sigh…
上周拿到了公司技术长老大张的诺基亚 N810 internet tablet,说说这几天的使用体验吧。
先说说硬件配置:
4.13 英寸 65535 色 TFT 触控式液晶屏,800x480 的分辨率,400Mhz TI OMAP 2420 CPU,128M 内存,256M 内置 Flash 卡预装 maemo os2008 操作系统,内置 2G 的存储卡,还有一个 miniSD 卡槽,可以使用最大 8G 的 miniSD 存储卡,这样就可以达到 10G 的存储容量,够用了。对了,还有内置的 GPS,30 万像素摄像头。