CSVとは?区切り・引用符・文字化けの仕組みと正しい開き方を解説
CSVは表形式データを保存・交換するための、最も身近なテキスト形式です。本記事では「CSVとは何か」から、区切り文字や引用符・改行のルール、Excelで開いたときに起きる文字化けの正体と回避法、そしてビューアでの表示やJSONへの変換まで、初心者にも分かるように順を追って解説します。
表計算ソフトのデータ書き出し、システム間のデータ連携、各種サービスからのエクスポート。さまざまな場面で目にするのが「CSV」です。シンプルな形式ですが、区切り文字や文字コードの違いでつまずく人も少なくありません。本記事ではCSVの正体と正しい扱い方を、文字化けの回避を含めてやさしく解説します。
CSVとは何か
CSV(シーエスブイ、Comma-Separated Values)は、その名のとおり「カンマで区切った値」を並べた、表形式データを表すためのテキスト形式です。1行が表の1行(レコード)に対応し、行の中の各値をカンマで区切って列を表現します。
たとえば、3人分の名簿は次のように書きます。
name,age,city
山田太郎,30,東京
佐藤花子,25,大阪
最初の行はヘッダー行と呼ばれ、各列が何を表すかの見出しになります(ヘッダーがないCSVもあります)。CSVが広く使われる理由は次の3点です。
- 単純で軽量:ただのテキストなので、特別なソフトがなくてもメモ帳で開けます。
- 互換性が高い:Excelをはじめ、ほぼすべての表計算ソフトやデータベースが読み書きできます。
- 機械処理しやすい:行と列という単純な構造なので、プログラムでの取り込みが容易です。
一方で、JSONのような階層構造を表せない、明確な統一規格が長く存在しなかったといった弱点もあります。この「ゆるさ」こそが、後述する区切りや文字化けのトラブルの原因にもなります。
区切り・引用符・改行のルール
CSVは見た目が単純な分、値の中に区切り文字や改行が混ざったときの扱いがポイントになります。RFC 4180という事実上の標準仕様で、おおまかなルールが定められています。
区切り文字(デリミタ)
標準はカンマですが、実際にはカンマ以外もよく使われます。値の中にカンマを含むデータ(住所や金額など)が多い場合、タブ区切り(TSV)やセミコロン区切りが選ばれることがあります。とくにヨーロッパ圏では小数点にカンマを使う習慣があるため、区切りにセミコロンを用いるのが一般的です。CSVを受け取ったら、まず何で区切られているかを確認することが大切です。
引用符(クォート)
値そのものにカンマや改行を含めたいときは、その値をダブルクォート(")で囲みます。こうすると、囲みの中のカンマは区切りではなく、ただの文字として扱われます。
id,note
1,"東京都, 千代田区"
2,"改行を
含むメモ"
さらに、値の中にダブルクォート自体を入れたい場合は、ダブルクォートを2つ重ねて("")エスケープします。たとえば「彼は"天才"だ」という値は "彼は""天才""だ" と書きます。このルールを知らないと、引用符を含むデータで列がずれて壊れてしまいます。
改行コード
行の区切りには改行が使われますが、改行コードにはWindows系(CR+LF)とMac/Linux系(LF)があり、環境によって異なります。多くのソフトは両方を読めますが、古いソフトや一部のシステムでは改行コードの違いが原因で「1行に全部つながってしまう」といった不具合が起きることもあります。
文字コードと文字化けの仕組み
日本語CSVで最も多いトラブルが文字化けです。原因の多くは「文字コード(エンコーディング)の食い違い」にあります。
文字コードとは、文字を数値(バイト列)に変換する取り決めのことです。日本語環境でよく登場するのは次の2つです。
| 文字コード | 特徴 | 主な利用場面 |
|---|---|---|
| UTF-8 | 世界中の文字を扱える現在の標準。Web・プログラムで主流 | Webサービスのエクスポート、プログラム処理 |
| Shift_JIS(CP932) | 日本語向けの旧来コード。Windows由来のソフトで多い | 古い業務システム、Excelの一部書き出し |
文字化けは、「保存したときの文字コード」と「開くときに想定した文字コード」が違うときに起こります。たとえばUTF-8で保存された日本語CSVを、Shift_JISだと思い込んで開くと、漢字やかなが「縺ゅ>縺・」のような意味不明な記号に化けてしまいます。逆もまた同様です。つまり文字化けはデータが壊れているのではなく、多くの場合「読み方を間違えているだけ」なのです。
Excelで開くときの文字化け回避
「UTF-8のCSVをExcelでダブルクリックして開いたら日本語が化けた」という経験は多いはずです。これは、古い挙動のExcelがCSVを開く際、文字コードをShift_JISと推測してしまうために起こります。回避策はいくつかあります。
- BOM付きUTF-8で保存する:ファイル先頭にBOMという目印を付けると、ExcelはUTF-8だと正しく認識します。多くのツールに「BOM付きで書き出す」オプションがあります。
- データタブの「テキストから」機能で読み込む:ダブルクリックではなく、Excelの「データ」→「テキストまたはCSVから」を使うと、文字コードと区切り文字を指定して取り込めます。最も確実な方法です。
- 事前にビューアで中身を確認する:そもそもどの文字コードか分からない場合は、Excelに渡す前に内容を確認すると安全です。CSVビューア・整形ツールに貼り付ければ、表形式で正しく表示でき、文字化けの有無や区切りの状態をすぐに確かめられます。ブラウザ内で処理されるため、データが外部に送信される心配もありません。
逆に、Excelで作ったCSVをWebシステムに取り込ませる場合は、システム側がUTF-8を求めることが多いため、保存時に文字コードをUTF-8へ変換しておくと安全です。受け渡し先がどの文字コードを期待しているかを意識するのが、文字化けを防ぐ最大のコツです。
表示・整形・JSON変換の使いどころ
CSVを実務で扱うとき、必要になる作業はだいたい決まっています。それぞれに適したツールを知っておくと効率が上がります。
表示・整形・検索
テキストのままのCSVは、列がずれていたり値が長かったりすると、人の目では非常に読みづらいものです。CSVビューア・整形ツールを使えば、CSVやTSVを見やすい表として表示し、列でのソートやキーワード検索、不要な空白の整形などが行えます。受け取ったデータが「正しく区切れているか」「文字化けしていないか」を確認する最初のステップとして最適です。
JSONとの相互変換
プログラムやWeb APIでデータを扱うときは、階層構造を表せるJSON形式のほうが都合のよい場面が多くあります。表形式のCSVと、構造化されたJSONは相互に変換できます。JSON⇄CSV変換ツールを使えば、エクスポートしたCSVをJSONに変換してプログラムに取り込んだり、逆にAPIから得たJSONをCSVに変換してExcelで開いたりが手軽に行えます。区切り文字やヘッダーの有無も指定できます。
形式の橋渡しとして
「CSVで受け取ったが、扱いたいのはJSON」「JSONで届いたが、上司に渡すのはExcel」といった食い違いは日常的に起こります。こうした形式の橋渡しを、専用ソフトを入れずブラウザだけで完結できるのが、これらのツールの利点です。
実務で役立つ扱い方のコツ
最後に、CSVを安全に扱うための実践的なポイントをまとめます。
- まず区切りと文字コードを確認:カンマかタブか、UTF-8かShift_JISかを最初に把握すれば、トラブルの大半は防げます。
- Web連携にはBOMなしUTF-8、Excel向けにはBOM付きUTF-8:渡す相手に合わせて使い分けると文字化けを避けられます。
- 値にカンマや改行を含むときは必ず引用符で囲む:囲み忘れは列ずれの最大の原因です。
- 先頭の0が消える数値に注意:郵便番号や電話番号はExcelで数値扱いされ「01234」が「1234」になりがちです。文字列として扱う工夫が必要です。
- 機密データはブラウザ完結型ツールで:個人情報を含むCSVは、外部送信しないツールを選ぶと安心です。
CSVは覚えることが少ないわりに応用範囲の広い形式です。区切り・引用符・改行という構造のルールと、文字コードによる文字化けの仕組みさえ押さえれば、データの受け渡しで困ることはぐっと減ります。まずは手元のCSVをCSVビューア・整形ツールに貼って、正しく表示されるか確認するところから始めてみてください。
よくある質問
CSVとは何の略ですか?
CSVは「Comma-Separated Values(カンマ区切り値)」の略で、値をカンマで区切って並べた表形式のテキスト形式です。1行が表の1行に対応し、特別なソフトがなくてもメモ帳で開ける手軽さから、データの保存や交換に広く使われています。
CSVをExcelで開くと文字化けするのはなぜですか?
多くの場合、ファイルがUTF-8で保存されているのに、Excelがダブルクリックで開く際にShift_JISと推測してしまうことが原因です。回避するにはBOM付きUTF-8で保存する、Excelの「データ」→「テキストまたはCSVから」で文字コードを指定して読み込む、といった方法が有効です。
CSVの区切り文字はカンマ以外も使えますか?
はい。標準はカンマですが、値の中にカンマが多い場合などはタブ区切り(TSV)やセミコロン区切りもよく使われます。CSVを受け取ったら、まず何で区切られているかを確認することが大切です。ビューアツールなら区切りの状態をすぐ確認できます。
値の中にカンマや改行を入れたいときはどうしますか?
その値全体をダブルクォート(")で囲みます。囲んだ中のカンマや改行は区切りではなく文字として扱われます。さらに値の中にダブルクォート自体を入れたいときは、ダブルクォートを2つ重ねて("")エスケープします。
CSVをこのサイトで扱うとデータは送信されますか?
WAZA TOOLSのCSVビューア・整形ツールやJSON⇄CSV変換ツールはすべてブラウザ内で処理され、貼り付けた内容がサーバーに送信・保存されることはありません。個人情報を含むCSVでも安心してご利用いただけます。