Windows10 + Sqlite3 コマンドラインツール + Visual Studio Code で日本語を含む SQL をかいて、大いにはまった話。
結論:
Shift-JIS で SQL を書け!
状況:
Windows10 に PHP と Sqlite3 と Visual Studio Code をインストールし、VSC で SQL を書いて、コマンドプロンプトから Sqlite3 を起動して .read コマンドを使ってマルチバイト文字を含む SQL を実行したら、よくわからない理由で「Syntax error」が何か所も出たよ!
条件:
1.VSC のデフォルト文字コードが「UTF-8 with BOM」になっている。
2.Sqlite3 の Windows 版が、いつの間にか Shift-JIS でマルチバイト文字を処理するようになっている。(ぐぐったときは UTF-8 Only 見たいに書いてたのに…)
解説:
条件1.のせいで、.read コマンドを使っても、コマンドプロンプトにコピペしても、UTF-8 with BOM として扱われている。
条件2.のせいで、SQL は UTF-8 を使わなければいけないと思い込んでいた。
以上のせいで、1時間半くらいつぶした。最初から素直にメモ帳にコピペしていればこんなことには…