ホームページ > バックエンド開発 > PHPチュートリアル > Windows で Gvim を使用して PHP を書くときに中国語が文字化けする問題を解決する方法_PHP チュートリアル

Windows で Gvim を使用して PHP を書くときに中国語が文字化けする問題を解決する方法_PHP チュートリアル

WBOY
リリース: 2016-07-21 15:31:00
オリジナル
964 人が閲覧しました

まず、コード化けの原因を調べます。 ずっとブラウザのせいだと思っていましたが、結果的にはChrome、Firefox、IE9で文字化けが発生したのでブラウザの要因は否定できます。 Gvimだと推測した理由を検証するため、
メモ帳(note)を使ってphpファイルを書いてみました

コードをコピー コードは以下の通りです:

echo "Hello ";
echo "World";
?>

結果は文字化けしていないので、問題はGvimにあります。この結論は論理的です。
そこで、Gvim の設定ファイル (_vimrc) について調べ始めました。文字化けしたコードが生成される前の設定を示します (注: 以前に変更しました):
コードをコピーします コードは次のとおりです。

互換性のない設定
ソース $VIMRUNTIME/vimrc_example.vim
ソース $VIMRUNTIME/mswin.vim
mswin の動作
set diffexpr=MyDiff()
function MyDiff()
let opt = '-a --binary '
if &diffopt =~ 'icase' | let opt '-i ' | endif &diffopt =~ 'iwhite' |
let arg1 = v :fname_in
if arg1 =~ ' ' | let arg1 = ' "' . arg1 . '"' endif
let arg2 = v:fname_new
if 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 = replace($VIMRUNTIME, ' ', '" ', '') . 'diff"'
endif
else
let cmd = $ VIMRUNTIME . 'diff'
endif
silent実行 '!' . ' ' . opt . arg1 . ' ' . arg2 . ' > ' . arg3 . eq
endfunction
"デフォルトの背景色を設定します
colors dessert
" 設定 自動バックアップなし
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
」言語メッセージ zh_cn.utf-8
言語メッセージ zh_cn.utf-8
構文を有効にする

の構文
ここでいくつかの説明が必要です: 設定ファイル内のencoding、fileeconding、fileecondingsの意味:
encoding: 使用される文字エンコーディングVim のバッファ (バッファ)、メニュー テキスト、メッセージ テキストなどを含む、GVim による内部。
ユーザーマニュアルでは、.vimrc 内の値のみを変更することを推奨しています。実際には、.vimrc 内の値を変更することのみが意味があるようです。
fileencoding: GVim で現在編集されているファイルの文字エンコーディング。Vim がファイルを保存するとき、(新しいファイルかどうかに関係なく) ファイルもこの文字エンコーディングで保存されます。
fileencodings: GVim が起動すると、リストされている文字エンコーディングに従って、開かれるファイルの文字エンコーディングを 1 つずつ検出し、最後に検出された文字エンコーディングを fileencoding に設定します。
したがって、Unicode エンコード方式をこのリストの先頭に置き、ラテン語エンコード方式 latin1 を最後に置くのが最善です。
そのうち: 中国語は cp963 エンコーディングです
この時点で、ブラウザのデフォルトの文字セットが GBK であり、_vimrc で設定されているエンコーディングが utf-8 であることを突然思い出しました。


コピーコード コードは次のとおりです:
colors dessert
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
"コンソール出力の文字化けを処理する
言語メッセージ zh_CN.utf-8
構文を有効にする


の構文
修正完了後、Gvimを再起動すると中国語文字化け問題は解決します。

http://www.bkjia.com/PHPjc/323110.html

tru​​ehttp://www.bkjia.com/PHPjc/323110.html技術記事まず、コード化けの原因を調べます。 ずっとブラウザのせいだと思っていましたが、結果的にはChrome、Firefox、IE9で文字化けが発生したのでブラウザの要因は否定できます。確認するために…
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート