结合
windows ssh 搭建,你会知道更多
[转] 配置cygwin下中文支持
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://fangsblog.blogbus.com/logs/4787655.html
配置cygwin来支持中文
http://my.opera.com/render/blog/show.dml/369483
Site From: http://ergophile.bokee.com/1145741.html
I googled it.
http://www.linuxeden.com/forum/blog/index.php?op=ViewArticle&articleId=567&blogId=110848
bamanzi | 28 九月, 2004 22:14
大致写了一下,有待补充。
本来一年前就打算写的,但后来觉得老黄写更合适,但这家伙似乎只对代码有兴趣,总不写文档。
终端
locale支持
Cygwin的locale支持一直都不太好,采用zh_CN.gb2312好像问题很多,我一直采用的是zh_CN.gbk
~/.bashrc
LC_CTYPE=zh_CN.gbk
CHARSET=GBK #(glib2需要使用找个环境变量确定文件名的编码)
export LC_CTYPE CHARSET
一些小问题
允许bash输入、输出中文字符
~/.inputrc
set convert-meta off
set input-meta on
set output-meta on
ls显示中文文件名(而不是一堆问号)
alias ls="/bin/ls --show-control-chars"
less浏览中文文件
less --raw-control-chars
另外LESSCHARSET环境变量也很有用
X下的中文支持
locale支持
Cygwin的locale支持一直都有问题,好在X程序还可以使用XLOCALE。
建议还是使用zh_CN.gbk, 不要使用zh_CN.GB2312
在移植程序时需要注意不要让程序连接libcygwin.a里面的setlocale,而是采用libX11.a里面的_Xsetlocale。方法是:检查被移植程序的全部源代码,发现
#include
就修改为
#define X_LOCALE
#include
同时注意程序的连接库要添加-lX11.
如果对于结果没有把握,可以找个
Dependency Walker查看程序是否连接到了cygwin1.dll里面的setlocale,如果是,就说明有遗漏。
中文字体
PCF点阵字体
GTK1.x 和其他一些老的X程序都是用X字体,
注意必须要有编码与locale一致的字体,比如用zh_CN.gbk就必须要由GBK编码的字体,用zh_CN.GB2312就必须要有GB2312编码的字体
如果使用zh_CN.GB2312,这里有一个
RedOffice面带的点阵字体包
可以采用ttf2bdf从TTF抽取得到bdf格式,然后再用bdf2pcf得到pcf格式的字体文件。
(
这里有一个Windows版本的TTF2BDF,可以将Windows TTF字体转换出BDF字体, 注意得到bdf后要手工编辑一下文件头,将编码声明修改正确)
得
到字体之后,放到某个目录下,执行mkfontdir生成fonts.dir,然后用xset +fp
/path/to/your/fonts将字体路径加入即可(注意与fontconfig的配置不同,这里路径是不递归的,如果有的字体放在子目录里面,
子目录也需要添加进去才行)。
TTF字体
很多新的应用程序(比如GTK2)都使用fontconfig/libxft2来显示字体,它对TTF字体的支持比较好(X以前通过freetype, xft模块也支持TTF字体,但对中日韩字体的支持不是太好,而且也在Cygwin下似乎也没有这些模块)
完全可以使用Linux下的arphic字体包. 如果没有安装Linux,可以到
http://packages.debian.org下载相应的包,然后用
7zip解压提取出ttf文件。
得到字体文件之后,放到某个目录之下,编辑/etc/fonts/local.conf,将字体路径加入:
/path/to/my/ttf/fonts
如果只是自己使用,可以将字体文件放到~/.fonts下,不需要修改任何配置,最多三十秒fontconfig就能够发现这些字体了。
中文输入法
老黄(hzhr)移植了
miniChinput到Cygwin,我也移植了
fcitx-1.8.5和3.0,均可以从我的网站上找到
http://www.oliwen.com/bamanzi/cygwin/chinese/
一般设置了LC_CTYPE和XMODIFIERS就可以在程序中激活输入输入法了(除非这个程序没有XIM支持):
LC_CTYPE=zh_CN.gbk
XMODIFIERS="@im=Chinput"
export LC_CTYPE XMODIFIERS
对于fcitx而言,XMODIFIERS设置为什么都可以(但必须要设置),所以设置为"@im=Chinput"的话chinput和fcitx都可以正常使用
整理 www.blogjava.net/Good-Game