9

utf8 以外の文字列を実行し続ける php-gtk アプリに少し問題があります。データベースが UTF-8 であると想定されている場合でも、データベース接続に問題があることがわかりました。

「SET CHARACTER SET utf8」(MySQL の方法) と「SET NAMES UTF8」を試してみましたが、何も起こりません (「 SQLite が理解するクエリ言語 」ページにも、このコマンドに関する情報はありません。私はそれについて驚かない)。

PD: 接続はすでに UTF-8 で、データはそうではないかもしれませんが、接続のエンコードを変更する方法があれば、この質問は役に立ちます。

4

1 に答える 1

10

私が知る限り、SQLite には charsetの設定が 1 つしかありません。これはデータベースごとのレベルです。接続のエンコーディングを変更することはできません。

C API には、UTF-8 または UTF-16 として接続を開く2 つの異なる方法があります。私は、PHP の SQLite モジュール (つまり PDO) が単純に UTF-8 バージョンを使用することを期待しています。それが正しければ、SQLite 接続は常に UTF-8 であることが期待できます。これは、文字列をutf8_encode / utf8_decodeで手動でエンコード/デコードする必要があることを意味します。

以下も参照してください。http://www.alberton.info/dbms_charset_settings_explained.html

于 2008-11-04T20:07:26.293 に答える