JSON から CSV に変換した後、中国語が文字化けする場合の解決方法

わずか 3 ステップで JSON から CSV に変換した後の中国語文字化けを特定して修正できます:エクスポートエンコーディングが UTF-8 であることを確認し、ファイルに BOM を追加し、インポート方式で開くように変更します。この記事では、JSON から CSV への変換操作方法、両者の違い、大きなファイルの処理、API デバッグのシナリオ、スマートフォンでのインストール不要のソリューションについても説明し、5 つのよくある質問のトラブルシューティングを付録として提供します。

· · 7 分 · 21 閲覧 · 15 セクション
目次
  1. JSON から CSV に変換した後、中国語が文字化けする場合の解決方法
  2. なぜ文字化けが発生するのか
  3. JSON から CSV への中国語文字化けの解決方法
  4. JSON から CSV への変換操作方法
  5. JSON と CSV の違い
  6. JSON から CSV への大きなファイルの処理
  7. API デバッグ時の JSON から CSV への変換
  8. スマートフォンでの JSON から CSV への変換(インストール不要)
  9. よくある質問
  10. BOM を追加してもまだ文字化けする場合
  11. メモ帳で開くと正常だが、Excel で開くと文字化けする
  12. 中国語が \u4e2d\u6587 のような形式になる
  13. 配列フィールドが JSON 文字列として出力される
  14. 変換後に行数が増えた
  15. まとめ

JSON から CSV に変換した後、中国語が文字化けする場合の解決方法

JSON から CSV に変換した後に中国語が文字化けする根本的な原因は、通常、エンコーディングの不一致です。エクスポート時にシステムのデフォルトエンコーディングで書き込み、Excel は UTF-8 のバイト列を GBK として解釈してしまいます。解決策は、まずエクスポートのエンコーディングが UTF-8 であることを確認し、次に Excel にそれを正しく認識させることです。

最も手軽な方法は、CSV に UTF-8 BOM(バイト順マーク)を追加することです。Excel はこれを見ると自動的に UTF-8 として開きます。ブラウザ上でローカル動作するツールを使用している場合、通常はエクスポートオプションでチェックできます。

なぜ文字化けが発生するのか

CSV 自体はプレーンテキストであり、エンコーディング宣言が含まれていません。中国語が正しく表示されるかどうかは、書き込み側と読み取り側が同じエンコーディングを使用しているかどうかにかかっています。

書き込み側が UTF-8 で保存し、読み取り側が GBK で解釈すると、「锟斤拷」や一連の疑問符が表示されます。逆の場合も文字化けします。

もう一つのケースは、データ自体に問題はなく、Excel がダブルクリックで開く際にエンコーディングを推測し間違える場合です。メモ帳やコードで読み取ると正常な場合、これは表示上の問題であり、データの破損ではありません。

JSON から CSV への中国語文字化けの解決方法

以下の順序で確認してください。ほとんどの場合、最初の 2 ステップで解決します。

  1. エクスポートエンコーディングが UTF-8 であることを確認する。エクスポートオプションで「エンコーディング」または「Encoding」を探し、UTF-8 を選択します。「UTF-8 with BOM」しか選べない場合は、それを優先してください。
  2. BOM を追加する。BOM なしの UTF-8 でエクスポートされた場合、テキストエディタで「UTF-8 (BOM 付き)」として保存するか、ツールに BOM 付きバージョンを直接エクスポートさせます。
  3. インポート方式で開く。Excel で「データ - テキスト/CSV から」を選択し、ファイルをダブルクリックするのではなく、手動でエンコーディングを UTF-8 に指定します。
  4. 元の JSON のエンコーディングを確認する。JSON 仕様では UTF-8 が要求されていますが、一部の API は GBK エンコーディングのバイトストリームを返します。まずソースデータのエンコーディングを確認してから、変換方法を決定してください。
  5. フィールド値に残存エスケープがないか確認する。中国語が \u4e2d\u6587 のような Unicode エスケープで書き込まれている場合、まずデコードしてからエクスポートする必要があります。そうしないとリテラルとして表示されます。

エンコーディング処理後も CSV が異常に表示される場合は、ファイルを 16 進ビューアで開き、先頭 3 バイトが EF BB BF かどうかを確認してください。そうであれば、BOM が書き込まれています。

JSON から CSV への変換操作方法

基本的な流れは 3 ステップです:JSON を読み取り、構造を平坦化し、CSV を書き出します。

JSON はネストされたオブジェクトや配列を許可しますが、CSV は 2 次元の表のみです。したがって、最初のステップはネスト階層を列名に展開することです。例えば {"user":{"name":"张三"}} は列名 user.name になります。

一般的な方法は:

  1. JSON 配列内の各オブジェクトを 1 行として扱います。
  2. すべてのオブジェクトを走査し、出現したすべてのキーを収集してヘッダーとします。
  3. 欠落しているキーは空文字列で埋め、列の位置を揃えます。
  4. 値にカンマ、引用符、改行が含まれる場合は、二重引用符で囲み、内部の引用符をエスケープします。

/tools でブラウザ上でローカル動作するツールを見つけることができます。データはサーバーにアップロードされません。具体的なツールページは JSON から CSV への変換ツール をご覧ください。

JSON と CSV の違い

違いを理解すると、変換で何が失われるかを判断するのに役立ちます。

  • 構造:JSON はネストされたオブジェクトと配列をサポートしますが、CSV はフラットな 2 次元表のみをサポートします。
  • :JSON には文字列、数値、ブール、null などの型がありますが、CSV はすべてテキストです。
  • エンコーディング:JSON 仕様では UTF-8 が要求されていますが、CSV には強制規定がありません。
  • サイズ:JSON はキー名と括弧を含むため、通常、同等の CSV より大きくなります。
  • 用途:JSON は API 転送に適しており、CSV は表形式での閲覧や一括インポートに適しています。

変換の代償は、ネスト情報が平坦化されることです。配列フィールドは通常、JSON 文字列にシリアライズしてセルに詰め込むか、複数行に分割します。

JSON から CSV への大きなファイルの処理

ファイルが数十メガバイトを超えると、一度にメモリに読み込むとブラウザのタブがフリーズしやすくなります。

より安定した戦略はストリーミング処理です:チャンクごとに読み取り、行ごとに書き出します。これにより、メモリ使用量は 1 行のサイズにのみ依存し、ファイルの増加に伴いません。

その他に注意すべき点:

  • 最初にすべてのキーを収集するためにスキャンし、後で新しいキーが出現して列がずれるのを防ぎます。
  • 大きなファイルのエクスポート時はリアルタイムプレビューをオフにし、レンダリング負荷を減らします。
  • 複数の CSV に分割してエクスポートする方が、1 つの巨大なファイルより開きやすいです。
  • ブラウザのメモリが依然として厳しい場合は、コマンドラインツールに切り替えて処理します。

ブラウザ上でローカル動作するツールは、大きなファイルを処理する際にタブのメモリ制限を受けます。これは環境によるものであり、ツールの欠陥ではありません。ファイルが大きすぎる場合は、ローカルスクリプトへの切り替えをお勧めします。

API デバッグ時の JSON から CSV への変換

API をデバッグする際、返された JSON を迅速に表形式に変換してフィールドを確認する必要がよくあります。

この場合の重点は、元の構造を保持することであり、急いで平坦化しないでください。まずレスポンスを .json ファイルとして保存し、エンコーディングと完全性を確認してから変換します。

いくつかの実用的な習慣:

  • レスポンスを保存する際は明示的に UTF-8 を使用し、途中で書き換えられるのを避けます。
  • 最上位がオブジェクトか配列かを最初に確認します。単一のオブジェクトはまず配列に包んでから変換します。
  • ページネーションフィールドに注意し、1 ページ分のデータだけを変換しないようにします。
  • フィールド名にドットや角括弧が含まれる場合、列名の衝突に注意します。

変換後、API ドキュメントと照合して列名を確認すると、フィールドの欠落や名前の変更を迅速に発見できます。

スマートフォンでの JSON から CSV への変換(インストール不要)

スマートフォンで JSON を処理する場合、アプリをインストールするのはウェブページを使うより面倒なことがよくあります。

ブラウザ上でローカル動作するツールはスマートフォンでも同様に使用でき、アプリのインストールは不要で、ネットワーク経由のデータアップロードにも依存しません。ページを開き、貼り付けるかファイルを選択し、エクスポートするだけです。

スマートフォン側の制限は主にメモリとファイルセレクタにあります。巨大なファイルはスマートフォンでの処理には適していません。エクスポート後は表計算アプリで開くことができますが、文字化けが発生した場合は、同様にエンコーディングを優先的に確認してください。

よくある質問

BOM を追加してもまだ文字化けする場合

まず BOM が実際に書き込まれていることを確認し、16 進ビューアで先頭が EF BB BF かどうかを確認してください。書き込まれているのにまだ文字化けする場合、問題は BOM ではなく、データソースのエンコーディングにあります。JSON のソースに戻り、UTF-8 かどうかを確認してください。

メモ帳で開くと正常だが、Excel で開くと文字化けする

これはデータが正常であり、Excel がエンコーディングを推測し間違えたことを示しています。ファイルをダブルクリックするのではなく、「データ - テキスト/CSV から」インポートを使用し、手動で UTF-8 を指定してください。

中国語が \u4e2d\u6587 のような形式になる

これは Unicode エスケープシーケンスであり、文字化けではありません。変換前にデコードして、エスケープを実際の文字に復元してから CSV を書き出す必要があります。

配列フィールドが JSON 文字列として出力される

これは正常です。CSV には配列型がないため、配列を文字列にシリアライズしてセルに入れるしかありません。展開が必要な場合は、手動で複数行に分割する必要があります。

変換後に行数が増えた

ほとんどの場合、配列フィールドが複数行に展開されたためです。変換設定で配列の処理方法を確認し、「文字列としてシリアライズ」か「複数行に展開」を選択してください。

まとめ

中国語の文字化けは基本的にエンコーディングを統一することで解決できます。UTF-8 に BOM を付けることを優先してください。JSON から CSV に変換した後の中国語文字化けの解決方法の答えは、結局のところ、書き込み側と読み取り側が同じエンコーディングを使用し、Excel にどちらを使用すべきかを知らせることです。ツールを選ぶ際は、ブラウザ上でローカル動作するものを優先してください。データが本機から出ないため、デバッグと変換がより安心です。

21 閲覧 ·

関連ツール

この記事に関連する便利なツールをお試しください

すべて見る

もっと便利なツールを見つける

テキスト処理、PDFツール、AIライティングなどを無料で