日記ブログをお引越ししました。

随分と更新しなくなってしまったこの日記ブログですが、ふと思い立ってVMからAzure PaaSへとお引越ししました。もうVMの管理をしなくて良いように、完全に個人サイト関連はVMを捨てます。 移行は簡単に終わる予定でしたが、MySQLで文字化けが発生…。どうやら前回VMを引っ越した際にDBのcharset設定をミスしていたようです。latin1の中にUTF8で文字が書かれているという謎な状態になってしまっていました。 ちょっと苦労したのですが結局下記の手順で移行しました。 character-setを変更せずにそのままmysqldumpでダンプする。 mysqldump -u user -p –default-character-set=latin1 wp_database > wp_database.dump 「latin1」という文字を「utf8」に置換する。 sed -e s/latin1/utf8/ wp_database.dump > wp_database_utf8.dump 「latin1_general_cs」という文字を「utf8_general_ci」に置換する。 sed -e s/latin1_general_cs/utf8_general_ci/ wp_database_utf8.dump > wp_database_utf8_general_ci.dump 新しいdatabaseに取り込む。 mysql –host=newmysqldbname.mysql.database.azure.com –user=user -p wp_database < wp_database_utf8_general_ci.dump というわけで、新しい環境にお引越しが一応うまく行った感じです。 もう日記サイトをわざわざ見に来るひともめったにいなくなったと思いますが、新しいWordpressならブログの内容をtwitterに自動連投できるようなのでそれを使おうと思います。まる。

September 11, 2021 · 1 min · 胡田昌彦

「Excelで開くとCSVファイルが文字化けしている」場合の回避方法

皆さんこんにちは胡田です。 CSVファイルを開くと日本語が文字化けしてしまっていること、よくありますよね。会社で質問をもらったのですが、あまりにもよくあるケースで困っている人も多いと思いますのでブログに書いておきたいと思います。何度かMicrosoftさんにも報告させてもらっている気がするのですが、なかなか難しいところです。 いくつかパターンがあると思いますが今回対象にするのは下記のケースです。 - ファイルの拡張子は.csv - 文字コードはUTF-8 UTF-8の文字コードで日本語が含まれているケースは非常に多いと思います。というか当たり前にこういう選択肢になると思うのですがこのファイルを単純にダブルクリックからExcelで開くと文字化けします…。BOMあり/無し等で挙動の違いはあるかもしれませんが、今回は文字化けするケースのお話です。 対処方法1 文字コードをSJISに変換してから開く ExcelはSJISが大好きです。CSVファイル自体をSJISに変換してしまいましょう。 ツールはどれを使ってもいいのですが、今だと個人的には専用ツールを使うよりもVisual Studio Codeをおすすめします。 これで文字コードがSJISになってます。 このファイルを普通にExcelで開けばきちんと日本語が文字化けしない状態で開くことができます。 対処方法2 Excel上で文字コードを指定して読み込む Excel上で読み込む時に対処することもできます。 まずExcelのみを立ち上げます。 文字化けしている様子も確認できますね。文字コードを正しく指定します。 ……すいません、サンプルファイルが仕事関連のものできちんと文字化けが直ったスクリーンショットをお見せすることができませんでした。ですが「(株)」と日本語がきちんと文字化けせずに表示できていることが見えると思います。 あとは「読み込み」ボタンを押せば大丈夫です。 今回はCSVファイルを文字化けせずにExcelに読み込ませる方法を2つ紹介しました。でも、毎回対応する必要があるのが難点です…。 結局Excelが文字コードの自動判別をうまくしてくれないことが原因であり技術的には簡単に解決可能であるはずだと思っています。ですが、この挙動は何年たっても変わりません…。 私はもう自分で慣れちゃってるので何も意識せずに文字コードをコントロールしちゃうのであまり気にすらしていなかったのですが、改めてMicrosoftさんにもフィードバックして改善をお願いしたいと思いました。やります…。 もしも私がしらないだけでもっと簡単に都度対応ではなく対応できるワークアラウンドを知っている方がいたらコメント、チャット等で教えていただければと思います。 (追記)対処方法3 メモ帳で一度開いて上書きする(BOM付きにする) Twitterにて@hdk_2さんに以下教えてもらいました。 確か BOM ありだと大丈夫ですよね。メモ帳で保存し直すだけでも。 — Hideki EIRAKU (@hdk_2) 2018年8月27日 https://platform.twitter.com/widgets.js 教えてもらったとおり単にメモ帳でファイルを開いて何も編集せず「上書き保存」するだけで文字化けを回避できることを確認しました。なるほど!簡単ですね! 確認するとメモ帳で保存すると必ずBOM付きで保存してくれるようです。そして、BOM付きであればきちんとExcelも文字化けせずにUTF-8のファイルの日本語を取り扱ってくれました。 メモ帳だと容量の大きなファイルを開くとかなり時間がかかったりメモリ消費が大きかったり、そもそも開けないケースもありますが、容量が相対的に小さいファイルであればこれが一番お手軽かもしれないですね。 @hdk_2さんありがとうございます! 他にも方法ありましたら教えてくださいませ! マイクロソフトさんに対処してもらおう!(投票のお願い) https://excel.uservoice.com/forums/304921-excel-for-windows-desktop-application/suggestions/14154036-automatically-recognize-unicode-csv-file-automatic この問題への対処を求める要望がすでに何年も前からUserVoiceに上がっています。投票が多くなれば対処される可能性も高くなりますので、この問題に遭遇してこのブログにたどり着いた方は是非上記リンクより投票(Vote)お願いします!

August 27, 2018 · 1 min · 胡田昌彦

AI・テクノロジーの情報を発信しています

YouTube

AI・テクノロジーの最新トレンドを動画で配信中

note

技術コラム・深掘り記事を公開中