sqlite とそのテキスト エンコーディングに少し問題があります。sqlite が UTF-8 エンコーディングを処理するドキュメントを読んだか、コマンド PRAGMA encoding = "UTF-8"; を実行してエンコーディングを使用できます。データベースにはポーランド語のテキストを保存する必要があります。データベースは、後で Qt で使用されます。CREATE TABLE ... と INSERT INTO ... の 2 つのコマンドを含むスクリプトがあります。ファイルは UTF-8 でエンコードされています。ただし、コマンド ラインを使用する場合: sqlite3 myname.db < the_file.sql、データベースとテーブルの両方を作成できますが、ą、ć、ź、Ż などのすべてのポーランド固有の文字は、より単純な ANSI の同等の文字に自動的に変換されます。 : a、c、z、Z など。コマンド ラインの問題だと思いました。そのため、SQLite Manager 2009 をダウンロードし、スクリプト全体をコピーして貼り付けて SQLite Manager で実行すると、結果が同じであることに気付きました。文字は、コピー/貼り付け時に自動的に変換されます。SQLite は ANSI 文字のみの使用に制限されていますか?
質問する
6127 次
2 に答える
4
セットアップに問題がある場合、それは SQLite ではありません。
いくつかの簡単なテスト:
Linux:
$ cat > test.sql <<EOF
DROP TABLE IF EXISTS t;
CREATE TABLE t (str varchar(20));
INSERT INTO t (str) VALUES ("ą, ć, ź, Ż");
SELECT * FROM t;
EOF
$ file test.sql
test.sql: UTF-8 Unicode text
$ sqlite3 test.db < test.sql
ą, ć, ź, Ż
したがって、医師の処方どおりに機能します。
ウィンドウズ:
上記と同じものを使用してくださいtest.sql
。新たに作成する必要がある場合は、次のテキストをコピーして貼り付けます。
DROP TABLE IF EXISTS t;
CREATE TABLE t (str varchar(20));
INSERT INTO t (str) VALUES ("ą, ć, ź, Ż");
SELECT * FROM t;
Notepad++ に入れ、 Encoding -> Encode in UTF-8 without BOM でファイルとして保存します。
sqlite3 test.db < test.sql
─Е, ─З, ┼║, ┼╗
これは悪いですね。しかし、これはバグのある Windows コンソールです。代わりに出力をファイルに保存します。
sqlite3 test.db < test.sql > out.txt
Notepad ++で開くout.txt
-見栄えがします:ą, ć, ź, Ż
編集:使用すると、Windowsコンソールでも機能しますchcp 65001
:
chcp 65001
sqlite3 test.db < test.sql
ą, ć, ź, Ż
QED。
于 2012-11-19T11:33:20.577 に答える