スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

vimでの文字化け

vimでテキスト編集しようと思ったら文字化けと格闘する事になった


サーバのhtmlファイルをローカルに落として編集しようと思いvimで開いたのだけど、文字化けしていた。
(Ubuntuのgnome-terminal上でvimを利用)
いまいち文字コードが何たるかを理解していない・・。細かい勉強は先送りにして、とりあえず編集が
必要だったのでどう対応したかメモ。

※以下の作業はすべてgnome-terminalで実施しています。

- 前提 -

 ・ 対象は.htmlのファイル
 ・ 文字コードとしては"EUC-JP"(のはず)
 ・ 編集はvimをつかってやります


1. gnome-terminal上の「端末→文字コードの設定」から文字コード"EUC-JP"を指定

 まずこれを思いついたのだけど、あさはかでした。
 このターミナルで扱う文字コードを変更するっぽいのだとは思うけど相変わらず文字化けのまま。
 ただ、少し化け方がかわっていたのでコードはかわっているのかな?
 
 ちなみに、この状態でlessコマンドでファイルの中身をみると文字化けしているが、catコマンドだとちゃんと見られる。


 
2. ファイル自体の文字コードを調べる
 
 このファイル本当にEUC-JPなのか?とおもい、fileコマンドで調べてみる。
 
 "file -i xxxx.html"

 結果は
 
 index.html: text/html; charset=iso-8859-1

 と表示された。「iso-8859-1」えっ?
 調べてみると、西洋諸語を扱うコードらしい。不思議に思ってサーバのファイル自体でも確認すると、同じ結果だった。
 ・・・とりあえず気にしない事にしよう。

 という事は、vimで開いたときに「iso-8859-1」で認識されるのが問題なのか?


3. vimで文字コードを指定して開く(というか、開いた後に指定してみる)
 
 vimでコマンドラインモードにして( ":" を入力)以下のコマンドを入力。

 ":e ++enc=euc-jp" (":" はコマンドモードを表すプロンプト?なので入力しません。)

 できた!正しく表示されました。
 

 このまま保存して正しくEUC-JPになるのか不安だったので、文字コードを変更して保存するコマンドを実施。
 同様に、コマンドモードで

 ":set fileencoding=euc-jp" (":"は・・略)

 と入力。
 これで、通常に変更を保存して終了。


 念のためこの後再度fileコマンドで確認したところ、やはり"iso-8859-1"となる。
 うーむ。
 何が問題なのかと思い、ほかの方法を調べたら"nkf"というコマンドでも調べられるらしい。

 Ubuntu12.04には入っていなかったので"nkf"をインストール。
 
 "nkf -g xxxx.html"

 EUC-JP

 とただしく?表示された。
 どっちのコマンド使えばいいんだ??(サーバでもnkfコマンドで確認したらEUC-JPだった。)
 誰か知ってたら教えてくださいm(_ _;)m


 とりあえず、アップしてコンテンツの変更は無事完了。


 検索していたら、vimに自動で認識させるという方法もあるらしい。
 参考:http://www.kawaz.jp/pukiwiki/?vim
スポンサーサイト

テーマ : UNIX/Linux
ジャンル : コンピュータ

コメントの投稿

非公開コメント

プロフィール

Author:Opecha-DaDa
ニッチな技術メモ的なブログになりつつありますが、だからこそあなたのお役に立てる内容があれば幸いです。

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。