2016年5月3日火曜日

Windows10 の Sqlite3 に insert すると、syntax error を食らった話。

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時間半くらいつぶした。最初から素直にメモ帳にコピペしていればこんなことには…

0 件のコメント:

コメントを投稿