2016-04-06 11 views
0

私は.readに、いくつかのドイツ語の文字(ウムラウトAOUß)が含まれているSQLiteのスクリプトしようとしている:sqlite3のではないだろうので、私はBOMなしUTF8などのSQLファイルを保存したUTF8でSQLiteスクリプトを実行するには?

sqlite> 
.open test.db 
.read test.sql 

をBOMでそれを読んで、1行目のバグのエラーについても文句を言っていますが、üの行を選択すると、疑問符?が出るので、sqlite3はutf8として読み込まれません。しかし、コンソールにüを追加して同じ行を選択すると、正しい文字が表示されます。

私はまた、PowerShellを使用し、それを試してみました:

Get-Content test.sql -encoding utf8 | .\sqlite3.exe test.db 

が、結果は同じ(疑問符)でした。

ut8 sqlスクリプトを実行するには何が必要ですか?

結局のところPowerShellを経由してドイツäöüßのような国家の文字を含むUTF8エンコードされたファイルをインポートするには、

+0

file * with * BOM、ここで何が問題になっていますか?質問のその部分が何を意味するのかを明確にすることはできますか? –

+0

@ LasseV.Karlsen文を書き直しました:SQL文をBOMなしでutf8として保存しました.Sqlite3はBOMでそれを読んでいないので、1行目のエラーについて文句を言います。_ – t3chb0t

+0

問題は、ガベージファイルのようにutf8でエンコードされていませんでした。 – t3chb0t

答えて

0

を(私は各テスト用のデータベースを削除)このコマンドRunning a Sqlite3 Script from Command Lineである:

.\sqlite3 test.db ".read test.sql" 

この場合で作業し、結果は疑問符ではありませんRedirecting a .sql file to .db file in Windows他の一般的なソリューション:

Get-Content test.sql -encoding utf8 | .\sqlite3.exe test.db 

それは

chcp 65001 

か、そうでない場合、ファイルが正しくインポートされていますが、あなただけのゴミが表示されますと、コンソールのためのエンコーディングを変更することも重要だ結果を表示します。

あなたがC#ので作業している場合、あなたはまだ正しい文字列は表示されません、あなたは親切でそれを再エンコードする必要があります。ファイルはBOMなしでSQLiteのは読まない場合

value = Encoding.UTF8.GetString(Encoding.Default.GetBytes(value)); 
関連する問題