cygwin 解决 乱码问题 (转)

简介:
结合  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都可以正常使用
本文转自博客园刘凯毅的博客,原文链接:cygwin 解决 乱码问题 (转) ,如需转载请自行联系原博主。
目录
相关文章
|
2月前
|
Windows
windows 乱码之 gbk 与 cp936|4-3
windows 乱码之 gbk 与 cp936|4-3
|
5月前
|
C++
Clion CMake C/C++程序输出乱码
Clion CMake C/C++程序输出乱码
119 0
|
Java Windows
命令行乱码处理
命令行乱码处理
56 0
|
Linux
Linux中文显示乱码问题解决方法
Linux中文显示乱码问题解决方法
148 0
|
网络安全 Windows
SecureCRT乱码问题解决
SecureCRT乱码问题解决
SecureCRT乱码问题解决
|
Linux 数据库管理 Windows
windows平台的文件传到linux平台出现中文乱码,从GBK到UTF8
在windows下编辑的内容,上传到linux平台通常会出现中文乱码。
312 0
让cygwin乱码显示中文
让cygwin乱码显示中文
80 0
让cygwin乱码显示中文