2011年8月26日

Mayday

2011年8月23日

下载百度文库

百度文库有大量丰富的资料,但是只能在网页上浏览,无法方便地下载至本地电脑。在这里介绍一个方法,至少目前还是有效的,可以简单地复制文档内容。

在百度的搜索框内输入【site:wenku.baidu.com】以及要搜索的关键字(之间用加号分隔),如下例:

site:wenku.baidu.com iphone+越狱

在结果页面中,不要选择直接连接,点击【百度快照】,就可以看到文档的整个内容,拷贝加上粘贴,就可以随意保存了。

2011年8月19日

日语文字编码

有经验的朋友都知道,文字编码实在是让人头疼的问题,不同的软硬件平台,不同的程序语言,不同的版本,对于文字编码的支持都略有不同,名字也容易让人误解。
在JAVA中,对于日语文件来说,可以使用JISAutoDetect 来做检测(无法保证准备,尽量避免使用),但是仅限于ISO2022JP、SJIS、EUC-JP,而UTF8就不可以。下面的开源库,可以支持更多的编码,不过在使用过程中发现还有不足,有时无法正常识别。其实,在Linux环境中NKF确实还是比较值得信赖的,可以使用命令行来简单地识别。

http://code.google.com/p/juniversalchardet/

关于Shift_JIS,有一些细节问题,可以参考下面的链接

http://una.soragoto.net/topics/13.html







再进一步细致地补充一些:

ShiftJIS只是个通称而已,在Windows平台上,微软整合了NEC及IBM编码后,正式登录命名为Windows-31J,具体演变过程可以参考Microsoft CP932
当然,在手机上也有基于ShiftJIS的各个厂商自己的扩充,需要具体分别对待。

另外,电子邮件中使用的是ISO-2022-JP,7bit编码,其实Windows上微软实际上加入了自己的扩充,也就是CP50220,主要应用在OutlookExpress等Mailer,为此Linux阵营定义了ISO-2022-JP-MS,在PHP以及Perl(Encode::ISO2022JPMS,但是好像没有被cpan登录)中都可以使用,当然邮件MIME的charset部分必须为ISO-2022-JP。
进一步,Encode::EUCJPMS是一个更好的选择,当中除了eucJP-ms,还包含了cp51932,cp50220,cp50221。
在MIME::Charset的Source中可以看到如下的内容,也就是说独立出去了
    # ['iso-2022-jp-ms','Encode::ISO2022JPMS'],
    # ['cp50220',      'Encode::EUCJPMS'],
    # ['cp50221',      'Encode::EUCJPMS'],
对于这几种编码,ISO-2022-JP-MSについて有些简单的说明。

最后,即使同样是Unicode,也存在平台的差异,见下图(其中IBM-Unicode为标准Unicode),需要注意。

XML日本語プロファイル 解説
http://www.y-adagio.com/public/standards/tr_xml_jpf/kaisetsu.htm


XML Japanese Profile (Second Edition)
http://www.w3.org/Submission/2005/SUBM-japanese-xml-20050324/


文字コードの墓場
http://siisise.net/charset.html