レガシーマイグレーションっぽい話
昔作成された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