站点恢复了

万网实在太烂了。说php进程占了虚拟主机很多资源,居然把站点关掉了。感谢intscan的Byron给我提供了新的宿主。

不过在mysql数据迁移过程中还是遇到了一些问题。

1. 高版本的php不支持global_register,导致大量php页面出错,改了php.ini很偷懒的绕过这个问题。

2. 这里的php默认没装图形库php-gd,导致patch的图形统计页面无work,装php-gd搞定。

3. 这里的mysql默认collation为latin,导致blog的中文乱码,改collation为uft-8即可。

calibre使用技巧与常见问题

  最近因为开发盛大锦书Bambook的SNB格式的calibre插件,更多的使用了calibre和研究了它的实现,也在论坛上看很多对calibre使用上的问题。干脆在这里写上一贴,把常见问题(尤其是中文相关的问题)做一总结。本文会不定期更新。

  1. 什么是calibre?

  calibre是一个一站式的电子书籍管理软件,提供电子书籍管理、元信息整理、格式转换、阅读设备书籍同步、新闻下载等功能。可以近似把它类比为电子书界的iTunes。它使用Python开发,是一个跨平台的自由软件。

  calibre不是一个电子书下载软件,它只能从网上下载书籍的信息,但不能下载书籍本身。calibre不是电子书制作工具,虽然它提供格式转换功能,且在转换过程中提供一些定制功能,但这些功能非常有限,并不能用于精细控制和从头制作电子书。

  2. calibre的优缺点

  优点是功能全,可定制化程度高,可以折腾。缺点是体积庞大、速度慢、BUG较多(不过修得很快)。

  3. 中文TXT文件转换成别的格式后全部变为乱码

  因为Windows上大部分中文TXT文件是用System Codepage编码的,而calibre默认用UTF-8编码解析。解决方法是:可以把文件转成UTF-8编码后再放入calibre转换格式;也可以在calibre的转换对话框中左边选择“外观”,然后在右侧的“输入字符编码”中填入“gbk”或“gb18030”,calibre就可以正常转换格式了。

  4. 自动生成的封面图片中的中文字符变成问号

  calibre自带并硬编码了一些字体文件,这些字体中不包含中文字符,渲染出来的图片就只能显示成问号了。解决方案是用中文字体替换掉英文字体:在calibre安装目录下找到resources\fonts\liberation目录,用中文字体(比如文泉驿微米黑)替换掉里面的LiberationMono-Regular.ttf和LiberationSerif-Bold.ttf即可(删除原来的字体文件,把中文字体文件放进去并改名成这两个名字)。

  5. “保存到磁盘”和“发送到设备”后中文文件名变为拼音

  为了保证在各个平台各种文件系统下文件都可以正常的保存,calibre的作者采用了把非英语字符转为英语字符的方式来解决多语言文件名,中文就变成拼音了。对于“保存到磁盘”,可以去掉“首选项”->“保存图书到磁盘”->“将非英语字符转换为对应英语字符”的选项来强制calibre以原始字符保存文件名。不过这个功能有Bug,对于有些字符,保存后会乱码。对于“发送到设备”,目前没有解决方案。有关这个问题,目前正在与calibre作者积极沟通中,寻找最佳的解决方案。不过总的来说,只有极少数阅读器设备(如iRiver Story)的书架是用文件名而不是用图书元信息来显示的,所以对大部分阅读器而言即使用拼音文件名也不会带来太多的不便。

  6. 什么叫“作者排序”?

  老外的名字常常是名在前,姓在后,而称呼他们的时候又常常要用姓。比如Bill Gates,我们通常称呼他为Gates,这样如果直接用Bill Gates来排序所有的作者,就会不太好找。为了解决这个问题,常常就把“作者”字段设为“Bill Gates”,把“作者排序”字段设为“Gates, Bill”,这样就又好看又好找了。对于中文书籍的作者字段来说,其实是基本不存在这个问题的,直接把两个字段设成相同的就可以了。所以“作者排序”的实际含义是“用于排序的作者名字表示方式”,只不过这个词实在不知道有什么好的翻译方式,就只好用了这个生硬而难以理解的直译。

  如果您有任何有关calibre的问题,可以下面留言提出,我会尽量解答并挑选有代表性的放入正文。我也会不定期更新本文,添加更多常见的问题和calibre的使用技巧。