パーソナルツール

特定のエンコードのファイルを読み込む

作者: 小見 拓 最終変更 2012年01月08日 12時10分

特定のエンコードのファイルを読み込む

  • ファイルを読込後、エンコーディングを変換する
:let inputfile = "test.txt"
:let lines = readfile(inputfile)

:let i = 0
:for str in lines
    :let lines[i] = iconv(str, "utf-8", "cp932")
    :let i += 1
:endfor
:echo join(lines, "n")
"# => utf-8エンコードのファイルの読み込み、cp932エンコードに変換後、出力する
  • &encodingでvimエディタ内部で使用しているエンコーディングを取得できる
:let inputfile = "test.txt"
:let lines = readfile(inputfile)

:let i = 0
:for str in lines
    :let lines[i] = iconv(str, "utf-8", &encoding)
    :let i += 1
:endfor
:echo join(lines, "n")
"# => utf-8エンコードのファイルの読み込み、vimエディタ内部で使用しているエンコーディングに変換して出力
  • リストの一括変換を行うなら、mapを使用すると良い
:let inputfile = "test.txt"
:let lines = readfile(inputfile)
:call map(lines, 'iconv(v:val, "utf-8", &encoding)')
:echo join(lines, "n")
"# => utf-8エンコードのファイルの読み込み、vimエディタ内部で使用しているエンコーディングに変換して出力
  • cp932の文字列を文字化けしないように読み込む
:let cp932text = .....
:echo iconv(cp932text, "cp932",  &encoding)
  • euc-jpの文字列を文字化けしないように読み込む
:let eucjptext = .....
:echo iconv(eucjptext, "euc-jp", &encoding)
  • utf-8の文字列を文字化けしないように読み込む
:let utf8text = .....
:echo iconv(utf8text, "utf-8", &encoding)
  • エンコードを指定して、バッファに読み込む
:let inputfile = "test.txt"
:execute ":e ++enc=utf-8 " . inputfile
"# => utf-8エンコードのファイルをバッファに読み込む
ドキュメントアクション
コメント
blog comments powered by Disqus