当前位置:首页 > 操作系统 > Windows

Windows下利用Gvim写PHP产生中文乱码问题解决方法_PHP教程

首先:找出乱码产生的原因。 一直以为是浏览器的原因,结果我在chrome,firefox,IE9里面都出现了乱码,所以浏览器的因素可以排除。为了验证我猜测是Gvim的原因,
我用记事本(note)简单写了一个php文件
代码如下:
<BR /><?php <BR>echo "你好"; <BR>echo "世界"; <BR>?> <BR /> <BR />结果没有出现乱码,所以问题就出在Gvim上,这个结论水到渠成。 <BR />于是,开始研究Gvim的配置文件(_vimrc), 现在给大家看一下我产生乱码之前的配置(注:我之前修改过): <BR /><span style="CURSOR: pointer" onclick="doCopy('code30628')"><U></U></span> 代码如下:
<BR />set nocompatible <BR />source $VIMRUNTIME/vimrc_example.vim <BR />source $VIMRUNTIME/mswin.vim <BR />behave mswin <BR />set diffexpr=MyDiff() <BR />function MyDiff() <BR />let opt = '-a --binary ' <BR />if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif <BR />if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif <BR />let arg1 = v:fname_in <BR />if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif <BR />let arg2 = v:fname_new <BR />if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif <BR />let arg3 = v:fname_out <BR />if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif <BR />let eq = '' <BR />if $VIMRUNTIME =~ ' ' <BR />if &sh =~ '<cmd' <BR />let cmd = '""' . $VIMRUNTIME . 'diff"' <BR />let eq = '"' <BR />else <BR />let cmd = substitute($VIMRUNTIME, ' ', '" ', '') . 'diff"' <BR />endif <BR />else <BR />let cmd = $VIMRUNTIME . 'diff' <BR />endif <BR />silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq <BR />endfunction <BR />"设置默认背景色 <BR />colors desert <BR />"设置不自动备份 <BR />set nobackup <BR />"设置默认字体和大小 <BR />set guifont=Courier_New:h12:cANSI <BR />set termencoding=gbk <BR />set encoding=utf-8 <BR />"产生问题的原因 <BR />set fileencoding=chinese <BR />set fileencodings=ucs-bom,utf-8,chinese <BR />set langmenu=zh_CN.utf-8 <BR />source $VIMRUNTIME/delmenu.vim <BR />source $VIMRUNTIME/menu.vim <BR />language messages zh_cn.utf-8 <BR />language messages zh_cn.utf-8 <BR />syntax enable <BR />syntax on <BR /> <BR />这里需要说明一下:配置文件里enconding,fileeconding,fileecondings的含义: <BR />encoding: GVim 内部使用的字符编码方式,包括 Vim 的 buffer (缓冲区)、菜单文本、消息文本等。 <BR />用户手册上建议只在 .vimrc 中改变它的值,事实上似乎也只有在 .vimrc 中改变它的值才有意义。 <BR />fileencoding: GVim 中当前编辑的文件的字符编码方式,Vim 保存文件时也会将文件保存为这种字符编码方式 (不管是否新文件都如此)。 <BR />fileencodings: GVim 启动时会按照它所列出的字符编码方式逐一探测即将打开的文件的字符编码方式,并且将 fileencoding 设置为最终探测到的字符编码方式。 <BR />因此最好将 Unicode 编码方式放到这个列表的最前面,将拉丁语系编码方式 latin1 放到最后面。 <BR />其中:chinese 就是 cp963编码 <BR />只到这里我突然想起来,我的浏览里默认的字符集是 GBK的,而_vimrc里的设置编码是utf-8的,二者不对应, <BR /><span style="CURSOR: pointer" onclick="doCopy('code8601')"><U></U></span> 代码如下:
<BR />colors desert <BR />set nobackup <BR />set guifont=Courier_New:h12:cANSI <BR />"处理文本中显示乱码 <BR />set encoding=utf-8 <BR />set fileencodings=chinese <BR />set fileencoding=chinese <BR />"处理菜单及右键菜单乱码 <BR />source $VIMRUNTIME/delmenu.vim <BR />source $VIMRUNTIME/menu.vim <BR />"处理consle
输出乱码 <BR />language messages zh_CN.utf-8 <BR />syntax enable <BR />syntax on <BR /> <BR />修改完成之后,重新启动Gvim,中文乱码问题解决了。 <p align="left"><span id="url" itemprop="url">http://www.bkjia.com/PHPjc/323110.html</span><span id="indexUrl" itemprop="indexUrl">www.bkjia.com</span><span id="isOriginal" itemprop="isOriginal">true</span><span id="isBasedOnUrl" itemprop="isBasedOnUrl">http://www.bkjia.com/PHPjc/323110.html</span><span id="genre" itemprop="genre">TechArticle</span><span id="description" itemprop="description">首先:找出乱码产生的原因。 一直以为是浏览器的原因,结果我在chrome,firefox,IE9里面都出现了乱码,所以浏览器的因素可以排除。为了验...</span></p>

【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!

相关教程推荐

其他课程推荐