2010年1月18日星期一

今日警句

如果在当今的世界你停止学习,这个世界将从你身边飞驰而去。

——查理·芒格

最新unicode 汉字全集打印

=============
一、最新unicode范围

=============

unicode
最新版本是2009年9月出版的5.2版,对汉字又进行了扩充。以往常说的20902个汉字,在unicode中从0x4e00-0x9fa5,但这不是全部的unicode汉字。最新版的unicode汉字块如下:

0x4E00-0x9FFF CJK 统一字型 常用字 共
20992个(实际只定义到0x9FC3)
0x3400-0x4DFF CJK 统一字型扩展表A 少用字 共 6656个
0nx20000-0x2A6DF CJK 统一字型扩展表B 少用字,历史上使用 共42720个
0xF900-0xFAFF CJK 兼容字型 重复字,可统一变体,共同字 共512个
n0x2F800-0x2FA1F CJK 兼容字型补遗 可统一变体 共544个

一共定义大陆,台湾,香港,新加坡,马来西亚汉字,日语和韩语汉字或偏旁部首71424个。某些位置可能还是空的。

unicode 汉字定义可以在http://www.unicode.org/charts/unihan.html
查到。可以直接输入16进制unicode码,也可以直接将汉字复制粘贴进入。


===============

二、打印unicode汉字的方法

===============

不清楚windows对unicode支持情况如何。下面的程序在ubuntu9.10下测试通过,调整范围即可打印整个unicode
Han(unihan)的字符。

view plaincopy to clipboardprint?
#!/bin/env python
#coding:utf8
#2010.1.17
#打印20992个汉字及unicode 16进制到hz.txt
f = open('hz.txt','w+')
i = 0
for ch in xrange(0x4e00, 0xa000):
i += 1
s = str(i)+' '+hex(ch)+':'+unichr(ch).encode('utf8')
f.write(s)
print s
if i % 10 == 0:
f.write('\n')

f.close()

程序输出文件结果摘录:

view plaincopy to clipboardprint?
1 0x4e00:一2 0x4e01:丁3 0x4e02:丂4 0x4e03:七5 0x4e04:丄6 0x4e05:丅7
0x4e06:丆8 0x4e07:万9 0x4e08:丈10 0x4e09:三
11 0x4e0a:上12 0x4e0b:下13 0x4e0c:丌14 0x4e0d:不15 0x4e0e:与16 0x4e0f:丏17
0x4e10:丐18 0x4e11:丑19 0x4e12:丒20 0x4e13:专
21 0x4e14:且22 0x4e15:丕23 0x4e16:世24 0x4e17:丗25 0x4e18:丘26 0x4e19:丙27
0x4e1a:业28 0x4e1b:丛29 0x4e1c:东30 0x4e1d:丝
31 0x4e1e:丞32 0x4e1f:丟33 0x4e20:丠34 0x4e21:両35 0x4e22:丢36 0x4e23:丣37
0x4e24:两38 0x4e25:严39 0x4e26:並40 0x4e27:丧
41 0x4e28:丨42 0x4e29:丩43 0x4e2a:个44 0x4e2b:丫45 0x4e2c:丬46 0x4e2d:中47
0x4e2e:丮48 0x4e2f:丯49 0x4e30:丰50 0x4e31:丱
51 0x4e32:串52 0x4e33:丳53 0x4e34:临54 0x4e35:丵55 0x4e36:丶56 0x4e37:丷57
0x4e38:丸58 0x4e39:丹59 0x4e3a:为60 0x4e3b:主
61 0x4e3c:丼62 0x4e3d:丽63 0x4e3e:举64 0x4e3f:丿65 0x4e40:乀66 0x4e41:乁67
0x4e42:乂68 0x4e43:乃69 0x4e44:乄70 0x4e45:久
...
...
...
20881 0x9f90:龐20882 0x9f91:龑20883 0x9f92:龒20884 0x9f93:龓20885
0x9f94:龔20886 0x9f95:龕20887 0x9f96:龖20888 0x9f97:龗20889 0x9f98:龘20890
0x9f99:龙
20891 0x9f9a:龚20892 0x9f9b:龛20893 0x9f9c:龜20894 0x9f9d:龝20895
0x9f9e:龞20896 0x9f9f:龟20897 0x9fa0:龠20898 0x9fa1:龡20899 0x9fa2:龢20900
0x9fa3:龣
20901 0x9fa4:龤20902 0x9fa5:龥20903 0x9fa6:龦20904 0x9fa7:龧20905
0x9fa8:龨20906 0x9fa9:龩20907 0x9faa:龪20908 0x9fab:龫20909 0x9fac:龬20910
0x9fad:龭
20911 0x9fae:龮20912 0x9faf:龯20913 0x9fb0:龰20914 0x9fb1:龱20915
0x9fb2:龲20916 0x9fb3:龳20917 0x9fb4:龴20918 0x9fb5:龵20919 0x9fb6:龶20920
0x9fb7:龷
20921 0x9fb8:龸20922 0x9fb9:龹20923 0x9fba:龺20924 0x9fbb:龻20925
0x9fbc:龼20926 0x9fbd:龽20927 0x9fbe:龾20928 0x9fbf:龿20929 0x9fc0:鿀20930
0x9fc1:鿁
20931 0x9fc2:鿂20932 0x9fc3:鿃20933 0x9fc4:鿄20934 0x9fc5:鿅20935
0x9fc6:鿆20936 0x9fc7:鿇20937 0x9fc8:鿈20938 0x9fc9:鿉20939

从打印结果看,0x4E00-0x9FC3是有汉字的。0x9FC4-0x9FFF还是空白。但随后的版本会逐渐往上增长。


======

三、参考:

======
官方说明:http://www.unicode.org/versions/Unicode5.0.0/ch12.pdf
unihan字符全集官方下载:ftp://ftp.unicode.org/Public/UNIDATA/Unihan.zip
最新报告:http://www.unicode.org/reports/tr38/
20902个unicode汉字及拼音表:
http://dl1.csdn.net/fd.php?i=14601582879492&s=ed7babc9bd585c105a8b58c8b33830d6

unicode 5.0和gb等的关系 http://www.fmddlmyy.cn/text24.html

vim编辑退出后乱码问题解决

问题描述:使用gnome-terminal 用vim打开文件编辑后退出,提示符就变成乱码了。

下面是我google到的几种网友建议
1 我遇到过这情况,把locale改了就行,我是换成了LANG=zh_CN
LC_CTYPE="zh_CN"等

2一般用reset或者用gvim来跳过这个毛病
以前有位兄弟发过这样的贴,而且已经解决了。一时找不找。我记得好像是菜单Edit-->Current
Profile-->Title and Command里设置标题。

3
其实这不是vim的毛病,例如说如果你用konsole就没问题。实际上这是gnome-terminal的问题。在sir上看到过,只要在gnome-terminal的
配置文件-->标题和命令-->标题 中把 "终端" 两字的前后各加一个英文空格即可。
我这里也一样
没去研究过什么问题
反正很少用gvim
所以把gvim给cut 了

gnome-terminal 菜单里面--Terminal--reset 或reset and clear

最终解决:
法1 把gvim给cut 了(不是办法的方法)

查看 gvim的安装包

lingyun@lingyun:/media/movie/music/$ sudo apt-get install gvim
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package gvim is a virtual package provided by:
vim-tcl 1:7.1-138+1ubuntu3
vim-ruby 1:7.1-138+1ubuntu3
vim-python 1:7.1-138+1ubuntu3
vim-perl 1:7.1-138+1ubuntu3
vim-gtk 1:7.1-138+1ubuntu3
vim-full 1:7.1-138+1ubuntu3
vim-gnome 1:7.1-138+1ubuntu3
You should explicitly select one to install.
E: Package gvim has no installation candidate

因为 You should explicitly select one to install, 必须把上面的包都cut才行。

lingyun@lingyun:/media/movie/music/$ sudo apt-get remove vim-

[Tab]

vim-addon-manager vim-doc vim-gnome vim-gui-common vim-full
vim-scripts vim-tiny vim-gtk vim-runtime vim-syntax-gtk
vim-vimoutliner

法2 根据网友的建议及自己判断和不断的尝试,认为以下两点是关键

其实这不是vim的毛病,例如说如果你用konsole就没问题。实际上这是gnome-terminal的问题

将默认 vi 和 vim 链接到 vim.basic 此程序,解决 vi/vim 退出后终端乱码问题。

sudo update-alternatives -- config vi
sudo update-alternatives -- config vim

lingyun@lingyun:/media/movie/music/$ sudo update-alternatives --config vim

There are 3 alternatives which provide `vim'.

Selection Alternative
-----------------------------------------------
1 /usr/bin/vim.tiny
2 /usr/bin/vim.basic

*+ 3 /usr/bin/vim.gnome
Press enter to keep the default[*], or type selection number: 2
可见安装gvim后,默认vi, vim都的连接到了 /usr/bin/vim.gnome

参考:
http://www.linuxsir.org/bbs/thread225352.html
http://forum.ubuntu.org.cn/viewtopic.php?t=122314&sid=683901a07192d57b8c10691b44b0ea2c
http://forum.ubuntu.com.cn/about47661.html
http://blog.upsuper.org.cn/solve-the-problem-of-terminal-becoming-messy-after-exit-vim/

ubuntu 使用xp下的打印机

ubuntu要使用window xp下共享的打印机,需先安装samba:
sudo aptitude install samba
然后,进入"系统-系统管理-打印",新建打印机。选最下面的"网络打印机",Windows
Printer via SAMBA,
输入IP地址和用户名密码,浏览一下共享的打印机,并选择如hpLaserJ。进入后驱动选一种品牌,如HP。选相应的型号,如HP
LaserJet 1300 Series Postscript [en][推荐]。完成。
打印机地址类似: smb://192.168.12.112/hpLaserJ
即可打印。

至此,离完全脱离XP又近了一步!