2013-05-19 26 views
1

認識我喂在查詢數據庫如下:sqlite3的:查詢文件的UTF-8編碼不會自動

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。

+0

您使用過哪種編輯器來創建'query'文件? –

+0

我用gvim和vim – Forethinker

回答

1

顯然,您的文件包含一個byte-order mark,這在SQL命令中無效。

爲防止vim編寫BOM,請在保存之前執行:set nobomb