一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - Windows下利用Gvim寫PHP產生中文亂碼問題解決方法

Windows下利用Gvim寫PHP產生中文亂碼問題解決方法

2019-11-21 14:05PHP教程網 PHP教程

昨天本來說早點睡覺呢,沒想到一個在寫PHP程序的時候發現出現的亂碼問題又睡晚了,不過總算解決了。

首先:找出亂碼產生的原因。 一直以為是瀏覽器的原因,結果我在chrome,firefox,IE9里面都出現了亂碼,所以瀏覽器的因素可以排除。為了驗證我猜測是Gvim的原因, 
我用記事本(note)簡單寫了一個php文件 

復制代碼代碼如下:


<?php 
echo "你好"; 
echo "世界"; 
?> 


結果沒有出現亂碼,所以問題就出在Gvim上,這個結論水到渠成。 
于是,開始研究Gvim的配置文件(_vimrc), 現在給大家看一下我產生亂碼之前的配置(注:我之前修改過): 

復制代碼代碼如下:


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 


這里需要說明一下:配置文件里enconding,fileeconding,fileecondings的含義: 
encoding: GVim 內部使用的字符編碼方式,包括 Vim 的 buffer (緩沖區)、菜單文本、消息文本等。 
用戶手冊上建議只在 .vimrc 中改變它的值,事實上似乎也只有在 .vimrc 中改變它的值才有意義。 
fileencoding: GVim 中當前編輯的文件的字符編碼方式,Vim 保存文件時也會將文件保存為這種字符編碼方式 (不管是否新文件都如此)。 
fileencodings: GVim 啟動時會按照它所列出的字符編碼方式逐一探測即將打開的文件的字符編碼方式,并且將 fileencoding 設置為最終探測到的字符編碼方式。 
因此最好將 Unicode 編碼方式放到這個列表的最前面,將拉丁語系編碼方式 latin1 放到最后面。 
其中:chinese 就是 cp963編碼 
只到這里我突然想起來,我的瀏覽里默認的字符集是 GBK的,而_vimrc里的設置編碼是utf-8的,二者不對應, 

復制代碼代碼如下:


colors desert 
set nobackup 
set guifont=Courier_New:h12:cANSI 
"處理文本中顯示亂碼 
set encoding=utf-8 
set fileencodings=chinese 
set fileencoding=chinese 
"處理菜單及右鍵菜單亂碼 
source $VIMRUNTIME/delmenu.vim 
source $VIMRUNTIME/menu.vim 
"處理consle輸出亂碼 
language messages zh_CN.utf-8 
syntax enable 
syntax on 


修改完成之后,重新啟動Gvim,中文亂碼問題解決了。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品青青在线观看香蕉 | 美国雪白人妖sarina | 嫩草视频在线观看免费 | 無码一区中文字幕少妇熟女H | 日本在线亚州精品视频在线 | 91精品91| se综合 | a级片在线播放 | 99久久免费精品视频 | 91果冻制片厂天美传媒 | 天天躁天天碰天天看 | 麻豆天美精东果冻传媒在线 | 国产免费看黄的私人影院 | 国产高清在线观看 | 小草视频免费观看在线 | 国产三级自拍视频 | 国产精品色爱综合网 | 精品videoss另类日本 | japanese日本护士 | 我强进了老师身体在线观看 | 欧美日韩一区二区三区免费 | 色多多视频网站 | 日本十大顶级绝伦推理片 | 亚洲视频99 | 午夜人妻理论片天堂影院 | h肉动漫在线视频无修无遮挡 | 无人区大片免费播放器 | 韩国一大片a毛片女同 | 紧致肉肉高h| 暖暖日本高清 | 欧美一级乱妇老太婆特黄 | 欧美在线一级视频 | 国产精品视频1区 | 欧美一级高清片免费一级 | 国产精品久久久免费视频 | 国内精品久久久久久久 | 好男人资源免费观看 | 欧美在线看片a免费观看 | 99热99在线| 天海翼黄色三级 | 国产免费一区二区三区 |