システムからインポートしたcsvが文字化けがしていました。検索して一番出てくる解決方法でも、文字化けは直らず、大変苦労しました。私の敗因はこれかなと。
- 「プログラムで開く」を使って「メモ帳」を開かなかった? ←意味がわからなかった
- 文字コード「ANSI」選び、「UTF-8BOM付き」を試さなかった
- EXCELを使って.textとして開き、.csvにして保存し直す、を試さなかった。←簡単な方法に固執していたため
知識がなさ過ぎて応用きかないのも問題ありでしたが、、、、直せたので書きます。
csvファイルの文字化け メモ帳を経由したやり方が直らない!
メモ帳を経由して直す
まずは王道の「メモ帳のテキストファイル」から。正しくやればこれで直ることが多いので、反省点&注意点を加えながら紹介します。
文字化けしたcsvファイルの例です。ダブルクリックしたらエクセルで開き、この状態です。古いシステムからダウンロードしたファイルでした。
まずはダウンロードしたてのファイルを開きます。ポイントはダブルクリックで開かないこと。ファイル名にカーソルを合わせ、右クリックして一覧を出します。「右クリック」というのが衝撃です。
一覧から「プログラムから開く」を選択し、「メモ帳」を選びます。
ダブルクリックはせずに、「プログラムから開く」を使う
普段は全く気にしませんが、ダブルクリックすると、PCは言われなくても「csvファイルはエクセルで開く」設定になっています。しかしこの「プログラムから開く」を使えば、エクセル以外のソフトで開くことも選べるようになります。(そのソフトで開けるかは不明ですが、チャレンジはできる)
※メモ帳が表示されない場合、下にある「別のプログラムを選択」を選んで、「メモ帳」を選択。「一度だけ」を押せば表示されます
csvがメモ帳で開かれました。文字化けしていないです。エクセルで開かなければ文字化けしていないんですね。
いつもメモ帳で開くわけではないので、エクセルで開いても文字化けしないように、文字コードを変えて保存します。
「ファイル」→「名前を付けて保存」をクリック
エンコードの欄が「UTF-8」になっているので、「ANSI」か「UTF-8(BOM付き)」どちらかを選んで保存します。(BOM付き)とあるのがポイントです。
今回はANSIで保存します。
「上書きしますか?」→「はい」とします。 上書きせず、別のファイルにしてもOKです。
出来上がったcsvファイルを、今度はダブルクリックで開きます。文字コードを変更しているので、エクセルで開いても大丈夫なはず。
文字化けが解消されました。
ポイントを押さえてもうまくいかない場合、結局、以下の方法が早かったりします。
Excelを使って、csvを作り直す方法
イメージはこちら。
エクセルを使って、テキストファイル(.txt)として開いて、.csvとして保存し直す
手間がかかりまるように見えますが、こちらの方がスムーズにできました。
こちらのcsvファイルでやってみます。
一旦csvファイルのことは忘れ、エクセルを開きます。面倒ですが、すでに作業してるファイルではなく、大元のエクセルファイルを開きます。
今回は左下の検索窓に「エクセル」と打ち込んで、Excelのアプリをクリックして起動します。
左側の「新規」をクリックし、「空白のブック」をクリックします。(新規であればなんでもよいです)
まっさらなエクセルが開いたら、「データ」タブをクリックし、「テキストまたはCSVから」をクリックします。
どのcsvファイルを選ぶかが出るので、先ほどの文字化けしていたcsvファイルを選びます。「インポート」をクリックします
取り込むためのウィザード画面が開きました。ここで重要なのが、「元のファイル」の文字コードが「Unicode(UTF-8)」になっていることを確認します。 「読み込み」をクリックする。
(なっていなければ、クリックしてプルダウンを表示し、UTF-8を選択します。)
注意:前半紹介したテキストファイルの時は、UTF-8 →ANSI に変えていたので混乱しやすいですが、Excel経由するときは「UTF-8」にします
Excelに吐き出された画面は、文字化けは直っています。Excelってこんなこともできるんですね。
ただし、「テーブル化」された状態で出てきます。テーブルとは、フィルターがついていたり、とか機能とか意志を持ってしまった状態です(←雑)。テキストファイルのようなピュア情報ではない。
なので「テーブル化」を解除します。「テーブルデザイン」をクリックし、「範囲に変換」をクリック。
ポップアップの「テーブル化ではなくて、ただの「範囲」にしてよいか?~」 →OK をクリック
すると、テーブルが解除されました。
文字化けがとれたテキストファイルができたので、あとはcsvに保存し直します。またしても「名前を付けて保存」画面を使います。
「ファイル」をクリック → 「名前を付けて保存」をクリック
ここから、荒療治です。
ファイル名についた、.xlsx を .csv と手打ちに入力し書き換えます。
さらに「ファイルの種類」も今は、Excelブックとなっていますが、これもCSVに選択し直します。(←クリックすると種類の一覧が表示される)
「保存」をクリックします
ポップアップに「OK」をクリック。
いつの間にか、シートが2枚できてしまっているので、今作った左側だけをcsvにします、という意味です。右側のsheet1は何も入っていないので問題ありません。
文字化けしないcsvファイルが出来上がりました。
ダブルクリックしても文字化けしていません。
csv文字化けはいつも直せるわけじゃない
それにしても、「名前を付けて保存」という画面は良く使います。ここで文字コードを変更するのがすごい
ちなみに今回、文字化けしたcsvファイルはこちらを借りました。試したい方はどうぞ
参考:政府CIOポータル