1

次のように、データベースのクエリを入力しました。

sqlite3 database.db < query

そして私はメッセージを受け取りました:

Error: near line 1: near "SELECT": syntax error

クエリは UTF-8 でエンコードされており、データベースも同様です。次の方法でデータベースのエンコーディングを確認しました。

$ sqlite databse.db
sqlite> PRAGMA encoding;
UTF-8

または変換してもエラーメッセージが表示されましたが、

Error: near line 1: near "PRAGMA": syntax error

しかし、ファイル エンコーディング クエリは出力とともに返されました。上記の行を入れずにファイル形式を ANSI に変更すると、エラーは発生しませんでした。sqlite3 がファイル形式を自動的に検出できないのはなぜですか? デフォルトのエンコーディングをどこかに設定するオプションはありますか? Windowsでcygwinを使用しています。

4

1 に答える 1

1

どうやら、あなたのファイルにはSQL コマンドでは無効なbyte-order markが含まれているようです。

vim が BOM を書き込めないようにするには、:set nobomb保存する前に実行します。

于 2013-05-20T20:05:57.727 に答える