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

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

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,中文亂碼問題解決了。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久中文字幕亚洲精品最新 | 男人肌肌捅女人肌肌 | 男人女人插 | 奇米影视7777 | 猛男强攻变sao货 | 美女啪啪国产 | 欧美久久久久久久一区二区三区 | 把内裤拔到一边高h1v1 | 无码任你躁久久久久久久 | 吉泽明步高清无码中文 | 男男18视频免费网站 | 久久午夜夜伦痒痒想咳嗽P 久久无码AV亚洲精品色午夜麻豆 | 91嫩草国产在线观看免费 | 日韩精品欧美国产精品亚 | 人阁色第四影院在线观看 | 欧美高清乌克兰精品另类 | 亚洲天堂影院在线观看 | 嫩草研究| 男人和女人全黄一级毛片 | 97国产蝌蚪视频在线观看 | 17个农民工婉莹第一部 | 精品亚洲永久免费精品 | 国产精品久久久久久搜索 | 成人在线观看视频免费 | 成人综合婷婷国产精品久久免费 | tobu8在线观看免费高清 | 欧美高清在线精品一区二区不卡 | 欧美大陆日韩一区二区三区 | 国产高清在线视频一区二区三区 | 亚洲欧美专区精品伊人久久 | 国产一级片免费观看 | 涩涩漫画软件 | 国产精品一区久久精品 | 国产小情侣自拍 | 亚洲欧美日韩成人 | 窝窝午夜理伦影院 | 亚洲精品97福利在线 | 日韩欧美国产成人 | 成年人天堂 | 插得好爽 | 丝瓜茄子绿巨人秋葵榴莲污 |