minigui显示中文
2013-11-22 00:18
896 查看
转载:http://hi.baidu.com/shenhua_boss_/item/804f8bf68112a11fc7dc4529
minigui 显示中文
1 修改/etc/MiniGUI.cfg66 [systemfont]
67 font_number=10
68 font0=rbf-FixedSys-rrncnn-8-16-ISO8859-1
69 font1=*-FixedSys-rrncnn-*-16-ISO8859-1
70 font2=*-Courier-rrncnn-*-16-ISO8859-1
71 font3=*-SansSerif-rrncnn-*-16-ISO8859-1
72 font4=*-System-rrncnn-*-16-ISO8859-1
73 font5=*-fixed-rrncnn-*-16-GB2312
74 font6=*-Courier-rrncnn-*-16-GB2312
75 font7=*-SansSerif-rrncnn-*-16-GB2312
76 font8=*-Times-rrncnn-*-16-GB2312
77 font9=*-Helvetica-rrncnn-*-16-GB2312
78 default=0
79 wchar_def=4
80 fixed=1
81 caption=4
82 menu=2
83 control=3
84
85 [rawbitmapfonts]
86 font_number=3
87 name0=rbf-fixed-rrncnn-12-12-GB2312-0
88 fontfile0=/usr/local/share/minigui/res/font/song-12-gb2312.bin
89 name1=rbf-fixed-rrncnn-16-16-GB2312-0
90 fontfile1=/usr/local/share/minigui/res/font/song-16-gb2312.bin 这个为minigui自带的资源库安装好之后的字库路径
91 name2=rbf-fixed-rrncnn-6-12-ISO8859-1
92 fontfile2=/usr/local/share/minigui/res/font/6x12-iso8859-1.bin
93 [varbitmapfonts]
94 font_number=3
95 name0=vbf-Courier-rrncnn-10-15-ISO8859-1
96 fontfile0=/usr/local/share/minigui/res/font/Courier-rr-10-15.vbf
97 name1=vbf-Helvetica-rrncnn-15-16-ISO8859-1
98 fontfile1=/usr/local/share/minigui/res/font/Helvetica-rr-15-16.vbf
99 name2=vbf-Times-rrncnn-13-15-ISO8859-1
100 fontfile2=/usr/local/share/minigui/res/font/Times-rr-13-15.vbf
环境就是这样 然后就是程序了:
设置字体
PLOGFONT logfontsong20;
logfontsong20 = CreateLogFont (NULL, "song", "GB2312",FONT_WEIGHT_REGULAR, FONT_SLANT_ROM AN, FONT_FLIP_NIL,FONT_OTHER_AUTOSCALE, FONT_UNDERLINE_NONE, FONT_STRUCKOUT_NONE,16, 0);
SetWindowFont(hStatic_lat窗口句柄,logfontsong20);
然后还有最重要的一点 :就是编码一定要是GB2312的,否则还是乱码 怎么设置编码了 以VIM为列:
vim里面的编码主要跟三个参数有关:enc(encoding), fenc(fileencoding)和fencs(fileencodings)
其中fenc是当前文件的编码,也就是说,一个在vim里面已经正确显示了的文件(前提是你的系统环境跟你的enc设置匹配),你可以通过改变 fenc后再w来将此文件存成不同的编码。比如说,我:set fenc=utf-8然后:w就把文件存成utf-8的了,:set fenc=gb18030再:w就把文件存成gb18030的了。这个值对于打开文件的时候是否能够正确地解码没有任何关系。
fencs就是用来在打开文件的时候进行解码的猜测列表。文件编码没有百分百正确的判断方法,所以vim只能猜测文件编码。比如我的vimrc里面这个的设置是
set fileencodings=utf-8,gb18030,utf-16,big5
所以我的vim每打开一个文件,先尝试用utf-8进行解码,如果用utf-8解码到了一半出错(所谓出错的意思是某个地方无法用utf-8正确地解码),那么就从头来用gb18030重新尝试解码,如果gb18030又出错(注意gb18030并不是像utf-8似的规则编码,所以所谓的出错只是说某个编码没有对应的有意义的字,比如0),就尝试用utf-16,仍然出错就尝试用big5。这一趟下来,如果中间的某次解码从头到尾都没有出错,那么 vim就认为这个文件是这个编码的,不会再进行后面的尝试了。这个时候,fenc的值就会被设为vim最后采用的编码值,可以用:set fenc?来查看具体是什么。
至于enc,其作用基本只是显示。不管最后的文件是什么编码的,vim都会将其转换为当前系统编码来进行处理,这样才能在当前系统里面正确地显示出来,因此enc就是干这个的。在windows下面,enc默认是cp936,这也就是中文windows的默认编码,所以enc是不需要改的。在 linux下,随着你的系统locale可能设为zh_CN.gb18030或者zh_CN.utf-8,你的enc要对应的设为gb18030或者 utf-8(或者gbk之类的)。
自己来总结一下吧:
1.如果系统的locale是zh_CN的,那么想让vim能显示正确的编码,在 .vimrc 中设置:
set enc=gbk
set fencs=utf-8,gbk
这样,vim会先探测utf-8的编码,失败了会作为gbk的编码进行解码。显示当然是gbk了,这个和locale相关。
2.查看当前文件的编码:
:set fenc
3.vim中转换编码:
:set fenc=utf8
然后保存即可。
4.如果已经打开了解码错的文件,想重新设置编码格式:
:edit ++enc=utf8
5.shell转换编码:
将一个GBK 编码的文件转换成UTF-8编码
iconv -f gbk -t utf8 file1 -o file2
批量转换文件的编码 :
find . -name '*.txt' -exec iconv -f gbk -t utf8 {} -o tmp.txt \; -exec mv tmp.txt {} \;
注:打开UTF-8编码的文件时,除了vim里的设置,还需要正确SecureCRT,详情请看我的另一篇文章《关于SecureCRT中的2个中文问题》
环境变量LANG(使用的语言);
环境变量LC_CTYPE(使用的内部编码);
Vim选项encoding(Vim的内部编码);
Vim选项termencoding(Vim在与屏幕/键盘交互时使用的编码);
Vim选项fileencoding(Vim当前编辑的文件在存储时的编码);
Vim选项fileencodings(Vim打开文件时的尝试使用的编码);
Vim选项ambiwidth(对"不明宽度"字符的处理方式;Vim 6.1.455后引入
这是我的vim设置
36 "编码设置
37 set enc=utf-8
38 set fencs=gb2312
就OK了
相关文章推荐
- MiniGUI - 中文显示(Linux)
- minigui支持中文显示
- minigui繁体中文的显示
- QT中文显示乱码解决
- PLSQL中文显示乱码
- UIWebView弹出键盘按钮显示中文
- python Wing IDE编辑器的中文显示解决方法
- tomcat日志中文显示?????? 乱码
- Haroopad中文显示问题
- 如何在SharpDevelop代码区显示中文注释
- PHP连接MySQL查询结果中文显示乱码解决方法
- windows 下 MINIGUI 编辑 C 程序汉字显示乱码的解决
- apache显示中文乱码
- iOS 调用系统相机显示中文标题
- 改变ubuntu终端显示语言(桌面系统是中文,终端提示是英文)
- Visual Studio 2010/2013 UTF8编码调试时显示中文
- plsql编码格式错误,中文乱码显示 ??
- displaytag使列名显示中文的方法
- SecureCRT连接Linux显示Mysql记录中文乱码
- 关于mysql中无法显示中文的完美解决方案