コマンドラインツールとの日本語相互表示
SQLite用のコマンドラインツール(以下、sqlite3.exe)とPupSQLiteの日本語データについてご教示願います。
(SQLite用のコマンドラインツールは http://www.sqlite.org/download.html の sqlite-3_X_XX.zip などからダウンロードできるツールです。)

sqlite3.exe でINSERTした日本語データを
PupSQLiteで表示すると文字化けします。
またその逆に、PupSQLiteでINSERTした日本語データを sqlite3.exe で表示すると文字化けします。
(データに限らず、テーブル名やカラム名なども日本語を使用すると文字化けしてしまいます。)

どこかに文字コードの指定を行うオプションなどがあるのでしょうか?
いろいろ探したのですが、相互に日本語データを正しく表示する方法が分からず困っています。
ご存知でしたらご教示のほど、宜しくお願い致します。
  • maki
  • 2009/10/05 (Mon) 14:16:50
Re: コマンドラインツールとの日本語相互表示
ご利用ありがとうございます。Pupです。

コマンドラインツールを使用するときに、日本語を含むフォルダ内のSQLite3データベースを指定すると
うまくいかないと思います。
これはSQLite3がUTF-8またはUTF-16の文字コードしかサポートしていないからだと思います。

また、たまたま日本語を含まないフォルダにあるSQLite3データベースを指定すると、一見うまくいきますが
Windowsでは標準でShift-JISの文字コードを使用することになっているため、INSERT文などの中に
日本語などを使用すると、データとしてはShift-JISでINSERTされます。

ですが、PupSQLiteではUTF-8かUTF-16しかサポートしていないためShift-JISで書き込まれた日本語を正しく
表示ができないことになります。

また、コマンドラインツールはWindows規定のShift-JISで動作するようなのでPupSQLiteで書き込んだUTF-8のデータが
正しく表示されません。

ただ、データベースのパスに日本語を含むとSQLite3.exeすら使えないことを考えると、SQLite3.exe自体もUTF-8かUTF-16しかサポートしていないものと思われます。

作成されるデータベースをShift-JISで使用される場合は、残念ですがPupSQLiteでは日本語が文字化けしてしまいます。
逆に作成されるデータベースをUTF-8などで使用される場合はコマンドラインツールで日本語も含む文字列のINSERTはやめた方がいいと思います。

以上、作成したデータベースをどのような文字コードで使用されるかでPupSQLiteを使用できるかどうかは変わりますが、コマンドラインツールとPupSQLiteで相互に日本語データを正しく表示する方法今のところありません。

ちなみに・・・無理やり考えると
1)PupSQLiteでShift-JISが正しく表示されるように私が頑張る
2)Windowsの規定の文字コードをUTF-8に変更する(できるの?)
ぐらいしかないかと思います。
万が一にも可能性があるのは1)だと思っていますが、何度もチャレンジしては挫折しております。

なかなか良いお返事ができなくて申し訳ありません。
今後とも、よろしくお願い致します。

  • Pup
  • MAIL
  • 2009/10/06 (Tue) 14:48:37
Re: コマンドラインツールとの日本語相互表示
コマンドラインツールとPupSQLiteで相互に日本語データを正しく表示する方法は今のところはないということですね。
であればGUIで見やすいPupSQLiteを使用していきます。

アドバイスありがとうございました。
大変参考になりました。

宜しくお願い致します。
  • maki
  • 2009/10/07 (Wed) 11:16:16

返信フォーム






プレビュー (投稿前に内容を確認)