【お知らせ】embulk v0.6.2以降からこの対応は不要となりました
次の手順を参考にアップデートしましょう!
- embulkのインストール・アップデート方法 - Qiita
http://qiita.com/y-ken/items/31890f4f188321cb88a7
はじめに
embulkでcsvファイルを処理する際、guessサブコマンドを用いて設定を自動生成できるのは便利ですね!
その時にcsvであればShift_JISがセットされることが多いのですが、次のような機種依存文字が使われうるファイルである場合には注意が必要です。
- ㈱なになに
※ この1文字目が機種依存文字
guessサブコマンドを用いて設定を自動生成する
最小限の設定を手で書きます。
$ vim partial-config.yml
in:
type: file
path_prefix: ./items.csv
out:
type: stdout
ここで作ったpartial-config.ymlを元に、config.ymlを生成します。
$ embulk guess partial-config.yml -o config.yml
このときプレビュー表示があるので期待通りに動いていることが分かりやすく、安心感がありますね。
出来上がったファイルは次の通りです。
$ vim config.yml
in:
type: file
path_prefix: ./items.csv
parser:
charset: Shift_JIS
newline: CRLF
type: csv
delimiter: ','
quote: '"'
escape: ''
skip_header_lines: 0
columns:
- {name: c0, type: string}
- {name: c1, type: string}
- {name: c2, type: string}
- {name: c3, type: string}
- {name: c4, type: string}
以下略
機種依存文字に対応させる
さて、ここからがメインです。
先ほど生成したconfig.ymlのparserの中のcharsetを、次のように書き換えます
@@ -7 +7 @@
- charset: Shift_JIS
+ charset: MS932
これで、取り込む際に文字化けしなくなりました。
embulk最高ですね〜♪