fileencodingを変更する場合に日本語の文字化けを避ける方法
例えばeuc-jpで書かれているファイルのfileencodingをutf-8に変更したい場合、
:e ++enc=utf-8
とやってutf-8で開いた後、保存をすれば良い。
ただし、当然ながら日本語は文字コードが合わず文字化けしてしまう。
1 #include <stdio.h> 2 3 int main() 4 { 5 printf("僕らの隊長は最高だ!"); 6 return 0; 7 }
これが
1 #include <stdio.h> 2 3 int main() 4 { 5 printf("?ͤ?????Ĺ?Ϻǹ?? 6 return 0; 7 }
こうなる。
iconv等を使って変更しても良いが、vimを開いたまま文字化けを回避する方法があるので紹介。
ggVGd:w<CR>:e ++enc=utf-8<CR>p:w<CR>
これでおk。
詳細に書くと、
ggVG "ファイル全体を選択 d "選択範囲(ファイル全体)をカット :w<CR> "保存 :e ++enc=utf-8<CR> "utf-8で開く p "ペースト :w<CR> "再度保存
一度yankバッファに退避させておくと、変更後のencodingでペーストくれるので新規ファイルで書き始めたソースが途中でeuc-jpで書いてることに気付いたときとか便利です。
でかいファイルの場合重いので、他の方法のが良いかも。
んー、別の方法がありそうな予感!