- - PR -
vimでUTF-8を使いたい
1
投稿者 | 投稿内容 | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-12-13 19:12
けんじです。
debian(sarge)でvimを使ってます。utf-8の文字コードで読み書きしたいのですがどのようにしていいのか分かりません。 .vimrcファイルを syntax on set nobackup set fileencoding=utf-8 set fileencodings=iso-2022-jp,euc-jp,utf-8,ucs2le,ucs-2,cp932 にしてますが、ファイルを保存してもどうもutf-8で保存されてないようです。 utf-8で保存されてないのは、HTMLファイルを <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> にしてブラウザでhtmlファイルを見ると文字化けするのですがcharsetをeuc-jpに変更すると文字化けせずにブラウザに表示することからutf-8で保存されてないと判断しました。 また $ nkf -w -Lu hoge.text > copied.txt; vi copied.txt としても文字が化けてしまいます。 vimのバージョンは7.0です。 どなたか、vimでutf-8で読み書きする方法をご存知でしたら御教授下さい。 | ||||||||||||||||||||||||
|
投稿日時: 2005-12-14 17:20
vim 7.0はリリースされてませんけど…。
localeはja_JP.EUC-JPですか?
を指定しない場合、新規ファイルはlocaleと同じ文字コードになります。 上記を指定したなら、加えて
も指定しないと表示が化けるかもしれません。 更に
は色々と問題が起こりそうな気がします。 最低でもlocaleと同じ文字コードは末尾に移動する必要があるかと。 例えば
| ||||||||||||||||||||||||
|
投稿日時: 2005-12-14 18:02
7.0aaをmakeしました。
すいません。環境をお伝えしてませんでした。 DebianをGnomeでインストして付いてましたgnome端末を使って文字コードの設定をUnicodeにしてます。 環境変数を $ echo $LANG ja_JP.UTF-8 .vimrcファイルは syntax on filetype on filetype plugin on set termencoding=utf-8 set encoding=utf-8 set fileencoding=utf-8 set guifont=-misc-fixed-medium-r-normal--15-140-75-75-c-90-iso10646-1 set fileformat=unix set fileencodings=iso-2022-jp,utf-8,ucs2le,ucs-2,cp932,euc-jp と設定してます。 なぜEUC-JPにしないか?と申しますと、AjaxをやるにはUTF-8でないと文字化けに悩まされるようなので1部のユーザ環境を完全にUTF-8の環境にしたいのです。
そのようにしてみましたが改善しませんでした。 | ||||||||||||||||||||||||
|
投稿日時: 2005-12-14 19:07
http://www01.tcp-ip.or.jp/~furukawa/nkf_utf8/
| ||||||||||||||||||||||||
|
投稿日時: 2005-12-14 19:23
コブラさん返信ありがとうございます。
$ nkf -w -Lu ファイル名 > utf-file とすれば確かにutf-8のコードになると思いますがvimでソースを修正したりできませんのでその解決方は私も検討しましたが、何度もコマンドを打たないといけないのとかいった効率性を考えるとnkfをその都度使うことはあまりしたくはありません。 あれからvimのバージョンを変更してversion 6.3.71にしてみました。 $ vi hoge ほげ # 文字が化けなくなった ZZで保存する $ kcc -c hoge hoge: ambiguous (EUC, shift-JIS or 8-bit JIS []) $ file hoge hoge: ISO-8859 text $ nkf -w -Lu hoge > utf-hoge $ kcc -c utf-hoge utf-hoge: data $ file utf-hoge utf-hoge: UTF-8 Unicode text UTF-8で扱われてないような状況になりました。 | ||||||||||||||||||||||||
|
投稿日時: 2005-12-14 23:35
なんかiconvが入ってなさそうな感じが。
新規ファイルは、保存前にfileencoding=utf-8すれば問題ないはずですが。 | ||||||||||||||||||||||||
|
投稿日時: 2005-12-15 09:44
solunaさん有難うございます。
:ver VIM - Vi IMproved 6.3 (2004 June 7, compiled Apr 24 2005 15:45:46) Included patches: 1-71 Compiled by tretkowski@kentucky.office.teamix.net Big version with GTK2 GUI. Features included (+) or not (-): +arabic +autocmd +balloon_eval +browse ++builtin_terms +byte_offset +cindent +clientserver +clipboard +cmdline_compl +cmdline_hist +cmdline_info +comments +cryptv +cscope +dialog_con_gui +diff +digraphs +dnd -ebcdic +emacs_tags +eval +ex_extra +extra_search +farsi +file_in_path +find_in_path +folding -footer +fork() +gettext -hangul_input +iconv +insert_expand +jumplist +keymap +langmap +libcall +linebreak +lispindent +listcmds +localmap +menu +mksession +modify_fname +mouse +mouseshape +mouse_dec +mouse_gpm -mouse_jsbterm +mouse_netterm +mouse_xterm +multi_byte +multi_lang +netbeans_intg -osfiletype +path_extra -perl +postscript +printer -python +quickfix +rightleft +ruby +scrollbind +signs +smartindent -sniff +statusline -sun_workshop +syntax +tag_binary +tag_old_static -tag_any_white -tcl +terminfo +termresponse +textobjects +title +toolbar +user_commands +vertsplit +virtualedit +visual +visualextra +viminfo +vreplace +wildignore +wildmenu +windows +writebackup +X11 -xfontset +xim +xsmp_interact +xterm_clipboard -xterm_save system vimrc file: "$VIM/vimrc" user vimrc file: "$HOME/.vimrc" user exrc file: "$HOME/.exrc" system gvimrc file: "$VIM/gvimrc" iconvは+になってますので入ってると判断しました。 $ vi hoge ほげ # 日本語を入力 :set fileencoding=utf-8 # コマンドを打つ コマンドを打ってZZで保存 $ file hoge hoge: UTF-8 Unicode text $ kcc -c hoge hoge: data 有難うございます。問題無くutf-8になっているようです。 ただコマンドを自分で打つと確実なのに、vimrcに書くとうまくいかないのは良く分かりませんのでもう少し.vimrcの仕様などを調べてみます。 同じような現象になっている方などおられましたら、ぜひご教授ください。 皆さん、有難うございました。 | ||||||||||||||||||||||||
|
投稿日時: 2005-12-15 10:02
追記です。
すいません、version7.0aaとversion 6.3.71を変えたり、いろいろ.vimrcの設定を変更しているうちに混乱していたようです。 今の設定は下記のようになってます。 set termencoding=euc-jp set encoding=utf-8 set fileencoding=utf-8 " shift-jis系は要らないので削除 set fileencodings=iso-2022-jp,euc-jp,utf-8,ucs2le,ucs-2 gnome端末をUnicode設定にしないでEUCのまま使って、H田中さんに教えて頂いたようにtermencodingをeuc-jpにしfileencoding=utf-8に指定すると文字化けもせずutf-8で保存できるようになりました。 私がクライアントの端末とVimの文字コードの指定をかなり混乱して使っていたように思えます。最初のH田中さんの説明で解決していたものをいろいろやりすぎて深みにはまってしまいました。皆さんすいませんでした。 回答して下さった方々どうも有難うございました。 |
1