CSV一括デコード・エンコード
CSVファイルを読み込んで、選んだ列だけをまとめて変換し、ダウンロードできます。 Shift_JISで保存されたCSVもそのまま読み込め、書き出す文字コードも選べます。 ファイルはサーバーに送信されません。
- 入れるもの
- CSVファイル(.csv/.txt・カンマ区切りまたはタブ区切り・UTF-8/Shift_JIS/EUC-JP)/変換する列と変換の種類
- 出るもの
- 選んだ列を変換したCSV(元の列を書き換えるか、右に列を足すか)/変換した件数と、変換できなかった件数/先頭12行の下見
手作業だと間違えやすいところを、そのまま扱います
- 値の中のカンマ・改行・引用符 … 引用符で囲まれた値は1つの値として読み、書き出しでも必要な値だけ囲み直します
- 文字コードの取り違え … Shift_JISのCSVをUTF-8として開くと化けます。読み込み時に判定し、違っていれば選び直せます
- BOMの有無 … 表計算ソフトで開くなら、書き出しは既定のUTF-8(BOM付き)が扱いやすくなります
- 形式が混ざった列 … 「自動で判定して戻す」は値ごとに形式を見分けます
1. CSVを読み込む
ここにCSVをドラッグ&ドロップ
タップしてファイルを選ぶこともできます
.csv / .txt(カンマ区切り・タブ区切り)
または
2. 変換する列と種類を決める
変換する列(複数選べます)
変換の種類
3. できあがり
文字コード
使い方
- CSVをドラッグ&ドロップするか、枠をタップして選びます。文字コードは自動で判定します。
- 変換したい列を選び、変換の種類を決めます。表の下見で結果を確認できます。
- 書き出す文字コードを選んでダウンロードします。
書き出す文字コードの選び方
表計算ソフトでそのまま開く場合はUTF-8(BOM付き)が扱いやすくなります。
BOMがないUTF-8のCSVは、日本語環境の表計算ソフトがShift_JISと解釈して文字化けすることがあるためです。
Shift_JISを前提にした既存のシステムに取り込む場合は、Shift_JISを選べます。
ただしShift_JISで表せない文字(一部の絵文字や、サロゲートペアの文字など)は ? に置き換わります。
置き換わる文字がある場合は、ダウンロードの前に表示します。
読み込めるCSVについて
引用符で囲まれた値の中にカンマ・改行・引用符が入っていても正しく読み取ります(RFC 4180)。
改行コードはCRLF・LF・CRのいずれでも構いません。
1行目が見出しかどうかは切り替えられます。
区切り文字はカンマが既定です。タブ区切りのファイルは「タブ区切り」に切り替えると読めます。
文字コードの判定のしかた
読み込んだファイルのバイト列を、次の順に見て文字コードを決めています。先に当てはまったところで決まります。
- 先頭が EF BB BF(UTF-8のBOM)なら UTF-8
- すべてASCII(半角英数と記号)なら UTF-8(どの文字コードで読んでも同じ結果になるため)
- UTF-8として最後まで矛盾なく読めるなら UTF-8
- それ以外は、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%80 | URLデコード(Shift_JIS) | 消しゴム |
| 44OO44O844OI | Base64デコード(UTF-8) | ノート |
| <30cm> | 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を選びます。表せない文字があった場合は、どの文字を ? にしたかをダウンロードボタンの下に表示するので、取り込む前に元データ側で直すかどうかを判断できます。
このツールの前提
- 読み込みから書き出しまでブラウザの中で行い、ファイルはサーバーに送信していません。ページを閉じると内容は消えます。
- 文字コードの判定は、BOMの有無と、UTF-8として成立するかどうか、それ以外は内容のそれらしさで決めています。判定が合わない場合は手動で選び直せます。
- 書き出しの改行コードはCRLFです。表計算ソフトで開いたときに崩れにくいためです。
- 値の前後に空白がある場合、そのまま残すために引用符で囲んで書き出します。
- 変換できなかった値は元の値のまま残します。どの行が変換されたかは下見の表で色分けして示します。
- 行数の上限は設けていませんが、端末の性能に左右されます。数万行を超える場合は分けて処理すると安定します。
- 区切り文字はカンマとタブの2つです。セミコロンなど、ほかの文字で区切られたファイルには対応していません。
- 1回に選べる変換の種類は1つです。選んだすべての列に同じ変換をかけます。
- 下見の表に出すのは先頭12行です。書き出すファイルには全行が入ります。
よくある質問
書き出した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ファイルはサーバーに送信されますか?
送信されません。ファイルの読み込みから変換、書き出しまでブラウザの中だけで行っています。ページを閉じると読み込んだ内容は消えます。