LoginSignup
0
0

More than 5 years have passed since last update.

Rubyスクリプトを使って、ファイルの文字エンコードを変更する話

Posted at

レガシーマイグレーションっぽい話

昔作成されたhtmlファイルの文字エンコードがUTF-8でなかったので、全部UTF-8に置換する必要がでてきた。

しかし、環境依存文字が紛れていた!!

「①」とか。これが入っていると置換処理するときにエラーの原因になるので、回避したい。

解法

1:先にUTF-8に変換して保存する

1-1:エンコード形式をutf-8に指定して開く
1-2:1行ずつ読み込む
1-3:書き込み処理を行う

サンプルコード

ruby のバージョンは 2.1.5 です



第一引数に変換元のファイルパスを、第二引数に変換先のファイルパスを記述している

書き込み用に、新しい配列を用意する。

newLine = Array.new

まず、ファイルを開く

File.open(ARGV[0],"r:UTF-8") do |file|

1行ずつ読み込む

each do だとうまくいかなかった。

while readLine = file.gets

    newLine.push(readLine)

end


読み込み処理終わり

end

書き込むパスを決定する

writeName = ARGV[1]

書き込み処理をする。

File.open(writeName, "w:UTF-8" ) do |file|

newLine.each do |line|
    file.write(line)
end


end

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0