Windowsの下でGvimを利用してPHPを書いて中国語の文字化けしの問題の解決方法を生みます

3352 ワード

まず、文字化けしの原因を特定します.ずっとブラウザの原因だと思っていたのに、chrome、firefox、IE 9に文字化けしてしまったので、ブラウザの要因は排除できます.Gvimの原因だと推測するために、
手帳(note)で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 =~ '\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:Vimのbuffer(バッファ)、メニューテキスト、メッセージテキストなど、GVim内部で使用される文字符号化方式.
ユーザーマニュアルでは推奨は.vimrcでその値を変えるのは、実際にはそうではないようだ.vimrcでその値を変えることこそ意味がある.
Fileencoding:GVimで現在編集されているファイルの文字符号化方式であり、Vimがファイルを保存する際にもこのような文字符号化方式としてファイルが保存されます(新しいファイルの有無にかかわらず).
Fileencodings:GVimが起動すると、そのリストされた文字符号化方式に従って、開くファイルの文字符号化方式が1つずつ検出され、filencodingが最終的に検出される文字符号化方式に設定されます.
そのためUnicode符号化方式をこのリストの一番前に、ラテン語系符号化方式latin 1を一番後ろに置くことが望ましい.
そのうちchineseはcp 963符号化である
ここまで来ただけでふと思い出したのですが、私のブラウズでデフォルトの文字セットは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を再起動し、中国語の文字化けし問題が解決しました.