Windows下利用Gvim写PHP产生中文乱码问题解决方法
前端之家收集整理的这篇文章主要介绍了
Windows下利用Gvim写PHP产生中文乱码问题解决方法,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
首先:找出乱码产生的原因。 一直以为是浏览器的原因,结果我在chrome,firefox,IE9里面都出现了乱码,所以浏览器的因素可以排除。为了验证我猜测是Gvim的原因,
我用记事本(note)简单写了一个PHP文件
<div class="codetitle"><a style="CURSOR: pointer" data="2296" class="copybut" id="copybut2296" onclick="doCopy('code2296')"> 代码如下:
<div class="codebody" id="code2296">
<?
PHP echo "你好";
echo "世界";
?>
结果没有出现乱码,所以问题就出在Gvim上,这个结论水到渠成。
于是,开始研究Gvim的
配置文件(_vimrc), 现在给大家看一下我产生乱码之前的配置(注:我之前
修改过):
<div class="codetitle">
<a style="CURSOR: pointer" data="94010" class="copybut" id="copybut94010" onclick="doCopy('code94010')"> 代码如下: <div class="codebody" id="code94010">
set nocompatible
source $VIMRUNTIME/vimrc_example.vim
source $VIMRUNTIME/mswin.vim
behave mswin
set diffexpr=MyDiff()
function MyDiff()
let opt = '-a --binary '
if &diffopt =~ 'icase' | let opt = opt . '-i ' | endif
if &diffopt =~ 'iwhite' | let opt = opt . '-b ' | endif
let arg1 = v:fname_in
if arg1 =~ ' ' | let arg1 = '"' . arg1 . '"' | endif
let arg2 = v:fname_new
if arg2 =~ ' ' | let arg2 = '"' . arg2 . '"' | endif
let arg3 = v:fname_out
if arg3 =~ ' ' | let arg3 = '"' . arg3 . '"' | endif
let eq = ''
if $VIMRUNTIME =~ ' '
if &sh =~ '\<cmd'
let cmd = '""' . $VIMRUNTIME . '\diff"'
let eq = '"'
else
let cmd = substitute($VIMRUNTIME,' ','" ','') . '\diff"'
endif
else
let cmd = $VIMRUNTIME . '\diff'
endif
silent execute '!' . cmd . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq
endfunction
"设置默认背景色
colors desert
"设置不
自动备份 set nobackup
"设置默认字体和大小
set guifont=Courier_New:h12:cANSI
set termencoding=gbk
set encoding=utf-8
"产生问题的原因
set fileencoding=chinese
set fileencodings=ucs-bom,utf-8,chinese
set langmenu=zh_CN.utf-8
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
language messages zh_cn.utf-8
language messages zh_cn.utf-8
Syntax enable
Syntax on