LoginSignup
7
6

More than 5 years have passed since last update.

embulkで機種依存文字が使われたcsvファイル取り込む方法

Last updated at Posted at 2015-04-14

【お知らせ】embulk v0.6.2以降からこの対応は不要となりました

次の手順を参考にアップデートしましょう!

はじめに

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最高ですね〜♪

7
6
2

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
7
6