コンサルタントの吉村です。易しくお伝えするために文字コードに詳しい方からすると端折ったり不適切な説明が含まるかもしれませんがご容赦ください。スキップしてください。あれば聞いたこと・見たことがあるのではないかと思います。乱暴に表現すると日本語しかわからない人に英語で話しかけちゃうと文字化けが起こります。コミュニケーションとは相手(システム)が分かる言葉(文字コード)でやりとりする必要があります。文字コードには何種類もありますが、ここでお話しするのは大きく3種類です。ASCII:英数文字と半角の記号だけの文字コードですUTF-8:世界中で標準的に利用されている文字コードで、日本語・ハングルなどいわゆる半角で表現できない文字を取り扱うことができますShift-JIS(以後SJISと表記):最初?に日本語に対応した文字コードですが、現在では非常に日本のエンジニアを困らせています。BLOCKS(および多くのWebアプリケーション)はASCIIおよびUTF-8に対応しています。この3つの文字コードは包含関係が存在します。上図で見ていただいた通り実は英数記号部分はUTF-8もSJISも同じでASCIIの範囲内何です。言うのを聞いたことがあるかと思います。BOM(ボム)についてBOM(バイトオーダーマーク)は文字コード以上に聞いたことがない人が多いと思います。ITエンジニアでも知らない人が多いです。Excelが「BOMが無いとヤダヤダ」とワガママを言うのでちょっと知られてきました。1Byte目と2Byte目のセットの仕方をどっちの順にするかを表現している制御データです。表現するかのようなもの)実際のデータで見るとこちらは読み飛ばしてもらっても構いません。「実際どうなってるの?」が知りたい人向けです。いうデータがあった場合には下図のようになります。ASCII部分は同じコードになっていると思います。BLOCKSおよび多くのUTF-8対応アプリケーションでは上図の中段のデータを期待しています。混乱させるような表現になっていてしかもBOM無しUTF-8が使えないという残念さです。それでは実際にBOMの付いていないUTF-8のデータをどのように作っていくかをご案内いたします。元データがExcelでBOM無しUTF-8のCSVファイルを作る方法は大きく下記の5つの方法があります。Shellで使う1.データに日本語を入れないここまで読んでいただいた方には方法って言うほどでもないのはお分りいただけると思います。日本語が入っていないデータ(英数半角記号)のデータはASCIIですがUTF-8でもあるのでそのままExcelから名前をつけて保存でCSVとして保存してもらって大丈夫です。2.Googleスプレッドシートに変換する電力需要予測の時にもチラッと書きましたが、Googleスプレッドシートにインポートすると自動的に文字コード変換してくれます。あとは形式を指定してダウンロードの中からカンマ区切りの値を選択するとBOMなしUTF-8のファイルがダウンロードできます。いうブロックがあります。こちらを使うとシフトJISからUTF-8のBOM無しに文字コードを変換してくれます。なりますのでご注意ください。4.コマンドラインツールを使う若干エンジニア寄りにはなるかと思いますが、実は一番手軽な方法です。いうコマンドがあります。個人的にはiconvの方がUnix/Linuxならどこでも入ってるので使い慣れてます。Windowsでインストール可能な方は調べてみてください。インストールが難しい方はこの後の方法を利用していただければと思います。CP932とはSJISの拡張された文字コードとお考えいただいて差し支えありません。いわゆる丸で囲った数字やギリシャ数字などの本来SJISでは存在しない文字に対応します。Shellで使うこのブログを読んでくださっている方はほぼGCPを触れる環境にある方だと思います。ShellというLinuxの環境を利用することが可能です。iconvが使えます。Storageからコピーを行います。Consoleにアクセスします。Shellのアイコンをクリックします。ShellがConsole画面の下側に表示されます。ここの黒い所の中だけLinuxとして動いているようなイメージです。この黒い画面のところで下記のようにファイルのコピーと変換を行います。gs://blocks-gn-ysmr-us-central1-data/denryoku/実際に操作するとこのようなイメージになります。BLOCKS(だけじゃないですが)で使われるUTF-8のファイルを準備する方法はたくさんあります。「文字コードが出てきた!ややこしい!無理!」ってならず、ひとつずつやれば難しくないのでぜひ試してもらえたらと思います。Groovenauts,Inc.。