Help us understand the problem. What is going on with this article?

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

More than 5 years have passed since last update.

【お知らせ】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最高ですね〜♪

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした