CSV一括デコード・エンコード

CSVファイルを読み込んで、選んだ列だけをまとめて変換し、ダウンロードできます。 Shift_JISで保存されたCSVもそのまま読み込め、書き出す文字コードも選べます。 ファイルはサーバーに送信されません。

入れるもの
CSVファイル(.csv/.txt・カンマ区切りまたはタブ区切り・UTF-8/Shift_JIS/EUC-JP)/変換する列と変換の種類
出るもの
選んだ列を変換したCSV(元の列を書き換えるか、右に列を足すか)/変換した件数と、変換できなかった件数/先頭12行の下見

手作業だと間違えやすいところを、そのまま扱います

1. CSVを読み込む

ここにCSVをドラッグ&ドロップ

タップしてファイルを選ぶこともできます

.csv / .txt(カンマ区切り・タブ区切り)

または

使い方

  1. CSVをドラッグ&ドロップするか、枠をタップして選びます。文字コードは自動で判定します。
  2. 変換したい列を選び、変換の種類を決めます。表の下見で結果を確認できます。
  3. 書き出す文字コードを選んでダウンロードします。

書き出す文字コードの選び方
表計算ソフトでそのまま開く場合はUTF-8(BOM付き)が扱いやすくなります。 BOMがないUTF-8のCSVは、日本語環境の表計算ソフトがShift_JISと解釈して文字化けすることがあるためです。
Shift_JISを前提にした既存のシステムに取り込む場合は、Shift_JISを選べます。 ただしShift_JISで表せない文字(一部の絵文字や、サロゲートペアの文字など)は ? に置き換わります。 置き換わる文字がある場合は、ダウンロードの前に表示します。

読み込めるCSVについて

引用符で囲まれた値の中にカンマ・改行・引用符が入っていても正しく読み取ります(RFC 4180)。 改行コードはCRLF・LF・CRのいずれでも構いません。 1行目が見出しかどうかは切り替えられます。
区切り文字はカンマが既定です。タブ区切りのファイルは「タブ区切り」に切り替えると読めます。

文字コードの判定のしかた

読み込んだファイルのバイト列を、次の順に見て文字コードを決めています。先に当てはまったところで決まります。

  1. 先頭が EF BB BF(UTF-8のBOM)なら UTF-8
  2. すべてASCII(半角英数と記号)なら UTF-8(どの文字コードで読んでも同じ結果になるため)
  3. UTF-8として最後まで矛盾なく読めるなら UTF-8
  4. それ以外は、Shift_JISとEUC-JPの両方で読んでみて、かなや漢字として自然に読めるほうを選ぶ

たとえば「商品名,価格」「ボールペン,120」の2行をShift_JISで保存したファイルは4番目で「Shift_JIS(内容から推測しました)」、同じ内容をEUC-JPで保存したファイルは「EUC-JP」と判定されます(このページと同じ判定処理で確認)。判定の理由は読み込み後の帯に表示し、合っていなければ「〜で読む」のボタンで読み直せます。元のバイト列を保持しているので、ファイルを選び直す必要はありません。

引用符・改行・空白の扱い

読み込みはCSVの標準的な決まり(RFC 4180)に沿っています。値の先頭が " なら、次の閉じる " までを1つの値として読み、その中のカンマや改行も値の一部として扱います。引用符の中の "" は " 1文字です。値の途中に現れた "(ab"c など)は、そのまま文字として残します。

書き出しでは、次の条件に当てはまる値だけを引用符で囲みます(表の ␣ は半角スペースです)。

元の値書き出される形囲む理由
ボールペンボールペン囲む必要がない
山田, 太郎"山田, 太郎"区切り文字を含む
1行目(改行)2行目引用符で囲んで改行を残す改行を含む
引用符"入り"引用符""入り"引用符を含む(""に置き換える)
␣␣前後に空白␣␣"␣␣前後に空白␣␣"前後の空白を残すため

改行コードは、読み込みではCRLF・LF・CRのどれでも行の区切りとして受け付け、書き出しでは行の区切りをCRLFにそろえます。引用符の中にある値の改行は、元の形のまま残します。タブ区切りで読み込んだ場合は、書き出しもタブ区切りです。

変換と書き出しで起きること

「サンプルで試す」で読み込まれる表の「検索キーワード」列に「自動で判定して戻す」をかけると、値ごとに次のように判定されます。

元の値判定した変換結果
%E3%83%9C%E3%83%BC…URLデコード(UTF-8)ボールペン
%8F%C1%82%B5%83S%83%80URLデコード(Shift_JIS)消しゴム
44OO44O844OIBase64デコード(UTF-8)ノート
&lt;30cm&gt;HTMLエスケープを戻す<30cm>
はさみUnicodeエスケープを戻すはさみ
のり変換しないのり

結果の欄には「6行のうち 5件を変換しました」と出ます。同じ列に「URLデコード」を文字コードUTF-8で指定してかけると、1行目は戻りますが、Shift_JISでエンコードされた2行目はUTF-8として解釈できないため元の値のまま残り、「1件は変換できず元の値のままです」と表示されます。空欄の値は変換の対象にしません。

「列を右に足す」を選ぶと元の列は残り、見出しに「(変換後)」を付けた列が右端に加わります。書き出すファイル名は、元のファイル名に _converted.csv を付けたものです。

書き出す文字コードは3つから選べます。UTF-8(BOM付き)は先頭に3バイトの印(EF BB BF)を付けます。Shift_JISは、ブラウザが持つShift_JISの文字表で変換します。「ラーメン🍜・髙橋・①・𠮷野家」を書き出すと、表にある「髙」「①」はそのまま残り、表にない「🍜」「𠮷」は ? に置き換わります。

場面ごとの使い方

アクセス解析や広告の管理画面から書き出したCSV

検索キーワードやページのURLが %E3%81%82 のような形で入っている列を選び、「自動で判定して戻す」をかけます。「列を右に足す」にすると、元の値と読める値を並べて見比べられます。

古い業務システムから受け取ったShift_JISのCSV

読み込むとShift_JISとして判定されます。書き出しの欄は変換する列を1つ以上選ぶと表示されるので、文字コードだけを変えたいときは、列を1つ選んで「自動で判定して戻す」のままにし、書き出しでUTF-8(BOM付き)を選びます。下見の表で緑(変換された値)が出ていないかを確かめてから書き出せます。

Shift_JISを前提にしたシステムへ取り込む

書き出しでShift_JISを選びます。表せない文字があった場合は、どの文字を ? にしたかをダウンロードボタンの下に表示するので、取り込む前に元データ側で直すかどうかを判断できます。

このツールの前提

よくある質問

書き出したCSVを表計算ソフトで開くと文字化けします。

書き出す文字コードを「UTF-8(BOM付き)」にすると化けにくくなります。BOMがないUTF-8のCSVは、日本語環境の表計算ソフトがShift_JISと解釈して文字化けすることがあるためです。既定はBOM付きにしてあります。

読み込んだ内容が文字化けして表示されます。

文字コードの判定が合っていない可能性があります。読み込み欄の「UTF-8で読む」「Shift_JISで読む」「EUC-JPで読む」で選び直せます。判定した文字コードとして解釈できない並びがある場合は、読み込み結果の帯が橙色になります。

Shift_JISで書き出すと「?」になる文字があります。

Shift_JISの文字表にない文字(多くの絵文字や、「𠮷」のようなサロゲートペアの文字など)は「?」に置き換わります。置き換えた文字はダウンロードボタンの下に表示します。元の文字を残したい場合はUTF-8で書き出せます。

列ごとに違う変換をかけられますか?

1回に選べる変換の種類は1つです。列ごとに種類を変えたい場合は、1つ目の変換で書き出したCSVを読み込み直し、別の列に別の変換をかけられます。「自動で判定して戻す」は値ごとに形式を判定するので、同じ列にURLエンコードとBase64が混ざっていても、それぞれ戻せます。

変換できなかった値はどうなりますか?

元の値のまま残します。何件を変換し、何件が変換できなかったかを結果の上に表示し、下見の表では変換された値を緑で示します。

CSVファイルはサーバーに送信されますか?

送信されません。ファイルの読み込みから変換、書き出しまでブラウザの中だけで行っています。ページを閉じると読み込んだ内容は消えます。

関連するコラム